diff options
author | Stefan Giehl <stefan@matomo.org> | 2020-06-09 11:58:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-09 11:58:32 +0300 |
commit | 8e25f1c68ab44fb0795b34f3459eabf362976f61 (patch) | |
tree | db4ad5c8474c73fbd1420d734be5cafbe15c5a9b | |
parent | bc626e6a3676f075f0b71d3534107da4d504ec44 (diff) |
Track ecommerce views as new dimensions instead of custom variables (#15999)
* Adds new columns to log_link_visit_action table to track ecommerce view data
* update piwik.js to track ecommerce view s the new way
* Adjust archiving
* update tests
* [TEMP] use php-tracker branch for composer
* Archive custom variables the old way, only if Matomo was installed before 4.0
* add fallback to custom variables to keep bc when replaying old logs
* update some expected test files
* fix jslint errors
* update javascript test
* update dimension names
* updates some expected test files
* add product view data to visitor details and add suggested segment values
* updates some expected test files
* rebuilt piwik.js
* adjust checked version
* update expected ui files
* updates some expected test files
* submodule updates
* apply some review feedback
* Show product views in action tooltips
* updates expected UI files
Co-authored-by: sgiehl <sgiehl@users.noreply.github.com>
84 files changed, 2947 insertions, 850 deletions
diff --git a/composer.json b/composer.json index cec2176dfc..0811d9b457 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "matomo/cache": "~2.0", "matomo/decompress": "~2.0", "matomo/ini": "~2.0", - "matomo/matomo-php-tracker": "dev-4.x-dev", + "matomo/matomo-php-tracker": "dev-ecommerceview", "matomo/network": "~2.0", "matomo/referrer-spam-blacklist": "^3.11", "matomo/searchengine-and-social-list": "~3.0", diff --git a/composer.lock b/composer.lock index 5a0c0101dd..82017d2b4b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "af2d8862dd5d4cf2d4a8570cb4e5f307", + "content-hash": "154553adcd814500964bfe8686f11a00", "packages": [ { "name": "composer/ca-bundle", @@ -544,16 +544,16 @@ }, { "name": "matomo/matomo-php-tracker", - "version": "dev-4.x-dev", + "version": "dev-ecommerceview", "source": { "type": "git", "url": "https://github.com/matomo-org/matomo-php-tracker.git", - "reference": "69e876faf4f981bafa3f65c8dd78a1d131badc1c" + "reference": "036f4974eb1024047805cb34c0b999c44283db62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matomo-org/matomo-php-tracker/zipball/69e876faf4f981bafa3f65c8dd78a1d131badc1c", - "reference": "69e876faf4f981bafa3f65c8dd78a1d131badc1c", + "url": "https://api.github.com/repos/matomo-org/matomo-php-tracker/zipball/036f4974eb1024047805cb34c0b999c44283db62", + "reference": "036f4974eb1024047805cb34c0b999c44283db62", "shasum": "" }, "require": { @@ -588,7 +588,7 @@ "piwik", "tracker" ], - "time": "2020-05-27T06:53:04+00:00" + "time": "2020-05-28T09:29:11+00:00" }, { "name": "matomo/network", diff --git a/core/Tracker/Request.php b/core/Tracker/Request.php index 441b91f5c9..b40a283e41 100644 --- a/core/Tracker/Request.php +++ b/core/Tracker/Request.php @@ -390,6 +390,12 @@ class Request 'ec_dt' => array(false, 'float'), 'ec_items' => array('', 'json'), + // ecommerce product/category view + '_pkc' => array('', 'string'), + '_pks' => array('', 'string'), + '_pkn' => array('', 'string'), + '_pkp' => array(false, 'float'), + // Events 'e_c' => array('', 'string'), 'e_a' => array('', 'string'), @@ -455,7 +461,7 @@ class Request } } - private function hasParam($name) + public function hasParam($name) { return isset($this->params[$name]); } diff --git a/core/Tracker/TableLogAction.php b/core/Tracker/TableLogAction.php index aba3b8eb19..fea4cac171 100644 --- a/core/Tracker/TableLogAction.php +++ b/core/Tracker/TableLogAction.php @@ -226,6 +226,8 @@ class TableLogAction 'contentInteraction' => Action::TYPE_CONTENT_INTERACTION, 'productName' => Action::TYPE_ECOMMERCE_ITEM_NAME, 'productSku' => Action::TYPE_ECOMMERCE_ITEM_SKU, + 'productViewName' => Action::TYPE_ECOMMERCE_ITEM_NAME, + 'productViewSku' => Action::TYPE_ECOMMERCE_ITEM_SKU ); if (!empty($exactMatch[$segmentName])) { @@ -233,17 +235,14 @@ class TableLogAction } if (stripos($segmentName, 'pageurl') !== false) { - $actionType = Action::TYPE_PAGE_URL; - return $actionType; + return Action::TYPE_PAGE_URL; } elseif (stripos($segmentName, 'pagetitle') !== false) { - $actionType = Action::TYPE_PAGE_TITLE; - return $actionType; + return Action::TYPE_PAGE_TITLE; } elseif (stripos($segmentName, 'sitesearch') !== false) { - $actionType = Action::TYPE_SITE_SEARCH; - return $actionType; - } elseif (stripos($segmentName, 'productcategory') !== false) { - $actionType = Action::TYPE_ECOMMERCE_ITEM_CATEGORY; - return $actionType; + return Action::TYPE_SITE_SEARCH; + } elseif (stripos($segmentName, 'productcategory') !== false + || stripos($segmentName, 'productviewcategory') !== false) { + return Action::TYPE_ECOMMERCE_ITEM_CATEGORY; } else { throw new \Exception("We cannot guess the action type from the segment $segmentName."); } diff --git a/js/piwik.js b/js/piwik.js index 4783eba905..b961361cbc 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -2277,6 +2277,9 @@ if (typeof window.Piwik !== 'object') { // Custom Variables names and values are each truncated before being sent in the request or recorded in the cookie customVariableMaximumLength = 200, + // Ecommerce product view + ecommerceProductView = {}, + // Ecommerce items ecommerceItems = {}, @@ -3682,6 +3685,13 @@ if (typeof window.Piwik !== 'object') { // we deleted all keys from custom data } + // product page view + for (i in ecommerceProductView) { + if (Object.prototype.hasOwnProperty.call(ecommerceProductView, i)) { + request += '&' + i + '=' + encodeWrapper(ecommerceProductView[i]); + } + } + // custom dimensions for (i in customDimensions) { if (Object.prototype.hasOwnProperty.call(customDimensions, i)) { @@ -6309,8 +6319,6 @@ if (typeof window.Piwik !== 'object') { /** * Used to record that the current page view is an item (product) page view, or a Ecommerce Category page view. * This must be called before trackPageView() on the product/category page. - * It will set 3 custom variables of scope "page" with the SKU, Name and Category for this page view. - * Note: Custom Variables of scope "page" slots 3, 4 and 5 will be used. * * On a category page, you can set the parameter category, and set the other parameters to empty string or false * @@ -6323,6 +6331,8 @@ if (typeof window.Piwik !== 'object') { * @param float price Item's display price, not use in standard Piwik reports, but output in API product reports. */ this.setEcommerceView = function (sku, name, category, price) { + ecommerceProductView = {}; + if (isNumberOrHasLength(category)) { category = String(category); } @@ -6332,10 +6342,12 @@ if (typeof window.Piwik !== 'object') { category = windowAlias.JSON.stringify(category); } - customVariablesPage[5] = ['_pkc', category]; + var param = '_pkc'; + ecommerceProductView[param] = category; if (isDefined(price) && price !== null && price !== false && String(price).length) { - customVariablesPage[2] = ['_pkp', price]; + param = '_pkp'; + ecommerceProductView[param] = price; } // On a category page, do not track Product name not defined @@ -6344,14 +6356,16 @@ if (typeof window.Piwik !== 'object') { } if (isNumberOrHasLength(sku)) { - customVariablesPage[3] = ['_pks', sku]; + param = '_pks'; + ecommerceProductView[param] = sku; } if (!isNumberOrHasLength(name)) { name = ""; } - customVariablesPage[4] = ['_pkn', name]; + param = '_pkn'; + ecommerceProductView[param] = name; }; /** diff --git a/js/piwik.min.js b/js/piwik.min.js index 73bf10e1b9..cb16f0764b 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae. if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao },getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true }return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length) -}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++; -try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a"); -if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1"); -var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; -dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime(); -return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}'; -if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1" -}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$"); -if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref")); -if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) -}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]); -if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension",""); -dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false -}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj; -if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl); -if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type -}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return -}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0; -di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di); -return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false); -an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests; -this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false -}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return -}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return -}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di] -}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true; -bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++; +try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a"); +if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1"); +var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; +dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime(); +return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}'; +if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1" +}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$"); +if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref")); +if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) +}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]); +if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension",""); +dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl +}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg(); +var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i"); +if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement +}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1); +dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link"); +bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase(); +if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null +}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj) +}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10); +if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={} +}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk)); +if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror; +T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return +}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0)) +};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file @@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae. if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao },getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true }return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length) -}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++; -try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a"); -if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1"); -var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; -dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime(); -return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}'; -if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1" -}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$"); -if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref")); -if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) -}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]); -if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension",""); -dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false -}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj; -if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl); -if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type -}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return -}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0; -di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di); -return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false); -an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests; -this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false -}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return -}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return -}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di] -}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true; -bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++; +try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a"); +if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1"); +var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; +dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime(); +return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}'; +if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1" +}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$"); +if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref")); +if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) +}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]); +if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension",""); +dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl +}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg(); +var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i"); +if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement +}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1); +dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link"); +bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase(); +if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null +}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj) +}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10); +if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={} +}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk)); +if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror; +T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return +}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0)) +};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file @@ -28,43 +28,43 @@ if(-1!==M(aq,ao)&&ae.findFirstNodeHavingAttributeWithValue(at,"src")){var ar=ae. if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left<ap&&((at.top<ao)||aq))},isNodeVisible:function(ap){var ao=j(ap);var aq=this.isOrWasNodeInViewport(ap);return ao&&aq},buildInteractionRequestParams:function(ao,ap,aq,ar){var at="";if(ao){at+="c_i="+t(ao)}if(ap){if(at){at+="&"}at+="c_n="+t(ap)}if(aq){if(at){at+="&"}at+="c_p="+t(aq)}if(ar){if(at){at+="&"}at+="c_t="+t(ar)}return at},buildImpressionRequestParams:function(ao,ap,aq){var ar="c_n="+t(ao)+"&c_p="+t(ap);if(aq){ar+="&c_t="+t(aq)}return ar},buildContentBlock:function(aq){if(!aq){return}var ao=this.findContentName(aq);var ap=this.findContentPiece(aq);var ar=this.findContentTarget(aq);ao=this.trim(ao);ap=this.trim(ap);ar=this.trim(ar);return{name:ao||"Unknown",piece:ap||"Unknown",target:ar||""}},collectContent:function(ar){if(!ar||!ar.length){return[]}var aq=[];var ao,ap;for(ao=0;ao<ar.length;ao++){ap=this.buildContentBlock(ar[ao]);if(J(ap)){aq.push(ap)}}return aq},setLocation:function(ao){this.location=ao },getLocation:function(){var ao=this.location||T.location;if(!ao.origin){ao.origin=ao.protocol+"//"+ao.hostname+(ao.port?":"+ao.port:"")}return ao},toAbsoluteUrl:function(ap){if((!ap||String(ap)!==ap)&&ap!==""){return ap}if(""===ap){return this.getLocation().href}if(ap.search(/^\/\//)!==-1){return this.getLocation().protocol+ap}if(ap.search(/:\/\//)!==-1){return ap}if(0===ap.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ap}if(0===ap.search("^[a-zA-Z]{2,11}:")){return ap}if(ap.search(/^\//)!==-1){return this.getLocation().origin+ap}var ao="(.*/)";var aq=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ao))[0];return aq+ap},isUrlToCurrentDomain:function(ap){var aq=this.toAbsoluteUrl(ap);if(!aq){return false}var ao=this.getLocation().origin;if(ao===aq){return true}if(0===String(aq).indexOf(ao)){if(":"===String(aq).substr(ao.length,1)){return false}return true }return false},setHrefAttribute:function(ap,ao){if(!ap||!ao){return}ae.setAnyAttribute(ap,"href",ao)},shouldIgnoreInteraction:function(aq){var ap=ae.hasNodeAttribute(aq,this.CONTENT_IGNOREINTERACTION_ATTR);var ao=ae.hasNodeCssClass(aq,this.CONTENT_IGNOREINTERACTION_CLASS);return ap||ao}};function O(ap,at){if(at){return at}ap=v.toAbsoluteUrl(ap);if(z(ap,"?")){var ar=ap.indexOf("?");ap=ap.slice(0,ar)}if(R(ap,"matomo.php")){ap=g(ap,"matomo.php".length)}else{if(R(ap,"piwik.php")){ap=g(ap,"piwik.php".length)}else{if(R(ap,".php")){var ao=ap.lastIndexOf("/");var aq=1;ap=ap.slice(0,ao+aq)}}}if(R(ap,"/js/")){ap=g(ap,"js/".length)}return ap}function N(av){var ax="Piwik_Overlay";var ap=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aq=ap.exec(G.referrer);if(aq){var at=aq[1];if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length) -}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cL="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cT=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cR=false,ci="GET",c9=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cw=aI,aE=ce||"",bH="",cY="",b6=b9||"",by="",bO="",a4,bj="",c5=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cT],bz=[],bL=[],a8=[],bJ=500,cV=true,cI,a5,bR,c6=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cW,bp,bS=false,bl=false,cP,be,bv,cJ=33955200000,co=1800000,c4=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,cZ={},c7={},ca=[],cf=false,cB=false,ap=false,c8=false,cM=false,aN=false,bc=u(),cx=null,cX=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],aw=U++; -try{bj=G.title}catch(cy){bj=""}function dd(dp,dm,dl,dn,dk,dj){if(bl){return}var di;if(dl){di=new Date();di.setTime(di.getTime()+dl)}G.cookie=dp+"="+t(dm)+(dl?";expires="+di.toGMTString():"")+";path="+(dn||"/")+(dk?";domain="+dk:"")+(dj?";secure":"")+";SameSite=Lax"}function aD(dk){if(bl){return 0}var di=new RegExp("(^|;)[ ]*"+dk+"=([^;]*)"),dj=di.exec(G.cookie);return dj?S(dj[2]):0}bB=!aD(cL);function b2(di){var dj;di=k(di,av);if(bP){dj=new RegExp("#.*");return di.replace(dj,"")}return di}function bV(dk,di){var dl=s(di),dj;if(dl){return di}if(di.slice(0,1)==="/"){return s(dk)+"://"+d(dk)+di}dk=b2(dk);dj=dk.indexOf("?");if(dj>=0){dk=dk.slice(0,dj)}dj=dk.lastIndexOf("/");if(dj!==dk.length-1){dk=dk.slice(0,dj+1)}return dk+di}function cG(dk,di){var dj;dk=String(dk).toLowerCase();di=String(di).toLowerCase();if(dk===di){return true}if(di.slice(0,1)==="."){if(dk===di.slice(1)){return true}dj=dk.length-di.length;if((dj>0)&&(dk.slice(dj)===di)){return true}}return false}function cl(di){var dj=document.createElement("a"); -if(di.indexOf("//")!==0&&di.indexOf("http")!==0){if(di.indexOf("*")===0){di=di.substr(1)}if(di.indexOf(".")===0){di=di.substr(1)}di="http://"+di}dj.href=v.toAbsoluteUrl(di);if(dj.pathname){return dj.pathname}return""}function a3(dj,di){if(!aj(di,"/")){di="/"+di}if(!aj(dj,"/")){dj="/"+dj}var dk=(di==="/"||di==="/*");if(dk){return true}if(dj===di){return true}di=String(di).toLowerCase();dj=String(dj).toLowerCase();if(R(di,"*")){di=di.slice(0,-1);dk=(!di||di==="/");if(dk){return true}if(dj===di){return true}return dj.indexOf(di)===0}if(!R(dj,"/")){dj+="/"}if(!R(di,"/")){di+="/"}return dj.indexOf(di)===0}function ar(dm,dp){var dj,di,dk,dl,dn;for(dj=0;dj<ax.length;dj++){dl=L(ax[dj]);dn=cl(ax[dj]);if(cG(dm,dl)&&a3(dp,dn)){return true}}return false}function aV(dl){var dj,di,dk;for(dj=0;dj<ax.length;dj++){di=L(ax[dj].toLowerCase());if(dl===di){return true}if(di.slice(0,1)==="."){if(dl===di.slice(1)){return true}dk=dl.length-di.length;if((dk>0)&&(dl.slice(dk)===di)){return true}}}return false}function cp(di,dk){di=di.replace("send_image=0","send_image=1"); -var dj=new Image(1,1);dj.onload=function(){E=0;if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:true})}};dj.onerror=function(){if(typeof dk==="function"){dk({request:di,trackerUrl:aE,success:false})}};dj.src=aE+(aE.indexOf("?")<0?"?":"&")+di}function cD(di){if(c9==="POST"){return true}return di&&(di.length>2000||di.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dm,dq,dp){var dk=aK();if(!dk){return false}var dl={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dr=false;var dj=aE;try{var di=new Blob([dm],dl);if(dp&&!cD(dm)){di=new Blob([],dl);dj=dj+(dj.indexOf("?")<0?"?":"&")+dm}dr=h.sendBeacon(dj,di)}catch(dn){return false}if(dr&&typeof dq==="function"){dq({request:dm,trackerUrl:aE,success:true,isSendBeacon:true})}return dr}function c3(dj,dk,di){if(!J(di)||null===di){di=true}if(m&&a6(dj,dk,di)){return}setTimeout(function(){if(m&&a6(dj,dk,di)){return}var dn;try{var dm=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; -dm.open("POST",aE,true);dm.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dp=m&&a6(dj,dk,di);if(!dp&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dk==="function")){dk({request:dj,trackerUrl:aE,success:true,xhr:this})}}};dm.setRequestHeader("Content-Type",cw);dm.withCredentials=true;dm.send(dj)}catch(dl){dn=m&&a6(dj,dk,di);if(!dn&&di){cp(dj,dk)}else{if(typeof dk==="function"){dk({request:dj,trackerUrl:aE,success:false})}}}},50)}function cg(dj){var di=new Date();var dk=di.getTime()+dj;if(!r||dk>r){r=dk}}function cn(di){if(cc||!a5||!bB){return}cc=setTimeout(function dj(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dk=new Date(),dl=a5-(dk.getTime()-cX);dl=Math.min(a5,dl);cn(dl)},di||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cx=new Date().getTime()}function dc(){var di=new Date().getTime(); -return !cx||(di-cx)>a5}function ay(){if(dc()){bR()}bK()}function df(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dc()){bR()}}})}function cC(dm){var dj=new Date();var di=dj.getTime();cX=di;if(cB&&di<cB){var dk=cB-di;setTimeout(dm,dk);cg(dk+50);cB+=50;return}if(cB===false){var dl=800;cB=di+dl}dm()}function aO(){if(aD(cL)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dj,di,dk){aO();if(!bB){cK.push(dj);return}if(!cP&&dj){if(cA&&bB){dj+="&consent=1"}cC(function(){if(cV&&a6(dj,dk,true)){cg(100);return}if(cD(dj)){c3(dj,dk)}else{cp(dj,dk)}cg(di)})}if(!aN){df()}}function ck(di){if(cP){return false}return(di&&di.length)}function c2(di,dm){if(!dm||dm>=di.length){return[di]}var dj=0;var dk=di.length;var dl=[];for(dj;dj<dk;dj+=dm){dl.push(di.slice(dj,dj+dm))}return dl}function de(dj,di){if(!ck(dj)){return}if(!bB){cK.push(dj);return}cC(function(){var dm=c2(dj,50);var dk=0,dl;for(dk;dk<dm.length;dk++){dl='{"requests":["?'+dm[dk].join('","?')+'"]}'; -if(cV&&a6(dl,null,false)){cg(100)}else{c3(dl,null,false)}}cg(di)})}function aT(di){return bk+di+"."+b6+"."+bo}function bY(dk,dj,di){dd(dk,"",-86400,dj,di)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var di=bk+"testcookie";dd(di,"1",undefined,bp,cW,bS);var dj=aD(di)==="1"?"1":"0";bY(di);return dj}function bi(){bo=b7((cW||cT)+(bp||"/")).slice(0,4)}function cH(){if(J(c7.res)){return c7}var dj,dl,dm={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dj in dm){if(Object.prototype.hasOwnProperty.call(dm,dj)){dl=h.mimeTypes[dm[dj]];c7[dj]=(dl&&dl.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c7.java="1" -}c7.cookie=b5()}var dk=parseInt(X.width,10);var di=parseInt(X.height,10);c7.res=parseInt(dk,10)+"x"+parseInt(di,10);return c7}function bX(){var dj=aT("cvar"),di=aD(dj);if(di&&di.length){di=T.JSON.parse(di);if(W(di)){return di}}return{}}function cE(){if(aQ===false){aQ=bX()}}function cQ(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var di=cH();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(di)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dj=bf();var dk=aA();var di=String(dj)+dk;return di}function c1(dk){dk=String(dk);var dn=aA();var dl=dn.length;var dm=dk.substr(-1*dl,dl);var dj=parseInt(dk.substr(0,dk.length-dl),10);if(dj&&dm&&dm===dn){var di=bf();if(aZ<=0){return true}if(di>=dj&&di<=(dj+aZ)){return true}}return false}function dg(di){if(!cM){return""}var dm=f(di,av);if(!dm){return""}dm=String(dm);var dk=new RegExp("^[a-zA-Z0-9]+$"); -if(dm.length===32&&dk.test(dm)){var dj=dm.substr(16,32);if(c1(dj)){var dl=dm.substr(0,16);return dl}}return""}function cN(){if(!bO){bO=dg(bN)}var dk=new Date(),di=Math.round(dk.getTime()/1000),dj=aT("id"),dn=aD(dj),dm,dl;if(dn){dm=dn.split(".");dm.unshift("0");if(bO.length){dm[1]=bO}return dm}if(bO.length){dl=bO}else{if("0"===b5()){dl=""}else{dl=cQ()}}dm=["1",dl,di,0,di,"",""];return dm}function aY(){var dq=cN(),dl=dq[0],dm=dq[1],dj=dq[2],di=dq[3],dn=dq[4],dk=dq[5];if(!J(dq[6])){dq[6]=""}var dp=dq[6];return{newVisitor:dl,uuid:dm,createTs:dj,visitCount:di,currentVisitTs:dn,lastVisitTs:dk,lastEcommerceOrderTs:dp}}function aH(){var dl=new Date(),dj=dl.getTime(),dm=aY().createTs;var di=parseInt(dm,10);var dk=(di*1000)+cJ-dj;return dk}function aM(di){if(!b6){return}var dk=new Date(),dj=Math.round(dk.getTime()/1000);if(!J(di)){di=aY()}var dl=di.uuid+"."+di.createTs+"."+di.visitCount+"."+dj+"."+di.lastVisitTs+"."+di.lastEcommerceOrderTs;dd(aT("id"),dl,aH(),bp,cW,bS)}function bM(){var di=aD(aT("ref")); -if(di.length){try{di=T.JSON.parse(di);if(W(di)){return di}}catch(dj){}}return["","",0,""]}function bw(dj){var di="testvalue";dd("test",di,10000,null,dj);if(aD("test")===di){bY("test",null,dj);return true}return false}function aF(){var dj=bl;bl=false;var di,dk;for(di=0;di<bu.length;di++){dk=aT(bu[di]);if(dk!==cL&&dk!==bd&&0!==aD(dk)){bY(dk,bp,cW)}}bl=dj}function b3(di){b6=di;aM()}function dh(dm){if(!dm||!W(dm)){return}var dl=[];var dk;for(dk in dm){if(Object.prototype.hasOwnProperty.call(dm,dk)){dl.push(dk)}}var dn={};dl.sort();var di=dl.length;var dj;for(dj=0;dj<di;dj++){dn[dl[dj]]=dm[dl[dj]]}return dn}function cd(){dd(aT("ses"),"1",co,bp,cW,bS)}function bg(){var dl="";var dj="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dk=dj.length;var di;for(di=0;di<6;di++){dl+=dj.charAt(Math.floor(Math.random()*dk))}return dl}function az(di){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){di+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){di+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) -}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){di+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){di+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){di+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){di+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return di}function cs(dk,dG,dH,dl){var dF,dj=new Date(),dt=Math.round(dj.getTime()/1000),dq,dE,dm=1024,dN,du,dC=aQ,dn=aT("ses"),dA=aT("ref"),dx=aT("cvar"),dy=aD(dn),dD=bM(),dJ=a4||bN,dr,di;if(bl){aF()}if(cP){return""}var dz=aY();if(!J(dl)){dl=""}var dw=G.characterSet||G.charset;if(!dw||dw.toLowerCase()==="utf-8"){dw=null}dr=dD[0];di=dD[1];dq=dD[2];dE=dD[3];if(!dy){var dI=co/1000;if(!dz.lastVisitTs||(dt-dz.lastVisitTs)>dI){dz.visitCount++;dz.lastVisitTs=dz.currentVisitTs}if(!bv||!dr.length){for(dF in cq){if(Object.prototype.hasOwnProperty.call(cq,dF)){dr=f(dJ,cq[dF]); -if(dr.length){break}}}for(dF in bG){if(Object.prototype.hasOwnProperty.call(bG,dF)){di=f(dJ,bG[dF]);if(di.length){break}}}}dN=d(bn);du=dE.length?d(dE):"";if(dN.length&&!aV(dN)&&(!bv||!du.length||aV(du))){dE=bn}if(dE.length||dr.length){dq=dt;dD=[dr,di,dq,b2(dE.slice(0,dm))];dd(dA,T.JSON.stringify(dD),c4,bp,cW,bS)}}dk+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dj.getHours()+"&m="+dj.getMinutes()+"&s="+dj.getSeconds()+"&url="+t(b2(dJ))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dz.uuid+"&_idts="+dz.createTs+"&_idvc="+dz.visitCount+"&_idn="+dz.newVisitor+(dr.length?"&_rcn="+t(dr):"")+(di.length?"&_rck="+t(di):"")+"&_refts="+dq+"&_viewts="+dz.lastVisitTs+(String(dz.lastEcommerceOrderTs).length?"&_ects="+dz.lastEcommerceOrderTs:"")+(String(dE).length?"&_ref="+t(b2(dE.slice(0,dm))):"")+(dw?"&cs="+t(dw):"")+"&send_image=0";var dM=cH();for(dF in dM){if(Object.prototype.hasOwnProperty.call(dM,dF)){dk+="&"+dF+"="+dM[dF]}}var dL=[];if(dG){for(dF in dG){if(Object.prototype.hasOwnProperty.call(dG,dF)&&/^dimension\d+$/.test(dF)){var dp=dF.replace("dimension",""); -dL.push(parseInt(dp,10));dL.push(String(dp));dk+="&"+dF+"="+t(dG[dF]);delete dG[dF]}}}if(dG&&B(dG)){dG=null}for(dF in bm){if(Object.prototype.hasOwnProperty.call(bm,dF)){var dv=(-1===M(dL,dF));if(dv){dk+="&dimension"+dF+"="+t(bm[dF])}}}if(dG){dk+="&data="+t(T.JSON.stringify(dG))}else{if(ao){dk+="&data="+t(T.JSON.stringify(ao))}}function ds(dO,dP){var dQ=T.JSON.stringify(dO);if(dQ.length>2){return"&"+dP+"="+t(dQ)}return""}var dK=dh(bW);var dB=dh(cm);dk+=ds(dK,"cvar");dk+=ds(dB,"e_cvar");if(aQ){dk+=ds(aQ,"_cvar");for(dF in dC){if(Object.prototype.hasOwnProperty.call(dC,dF)){if(aQ[dF][0]===""||aQ[dF][1]===""){delete aQ[dF]}}}if(bQ){dd(dx,T.JSON.stringify(aQ),co,bp,cW,bS)}}if(a2&&bE&&!bh){dk=az(dk);bh=true}if(aL){dk+="&pv_id="+aL}dz.lastEcommerceOrderTs=J(dl)&&String(dl).length?dl:dz.lastEcommerceOrderTs;aM(dz);cd();dk+=ac(dH,{tracker:bI,request:dk});if(cY.length){dk+="&"+cY}if(A(cb)){dk=cb(dk)}return dk}bR=function a7(){var di=new Date();di=di.getTime();if(!cX){return false}if((cX+(1000*c6))<=di){return false -}if(cX+a5<=di){bI.ping();return true}return false};function bq(dl,dk,dr,dm,di,du){var dp="idgoal=0",dq,dj=new Date(),ds=[],dt,dn=String(dl).length;if(dn){dp+="&ec_id="+t(dl);dq=Math.round(dj.getTime()/1000)}dp+="&revenue="+dk;if(String(dr).length){dp+="&ec_st="+dr}if(String(dm).length){dp+="&ec_tx="+dm}if(String(di).length){dp+="&ec_sh="+di}if(String(du).length){dp+="&ec_dt="+du}if(cZ){for(dt in cZ){if(Object.prototype.hasOwnProperty.call(cZ,dt)){if(!J(cZ[dt][1])){cZ[dt][1]=""}if(!J(cZ[dt][2])){cZ[dt][2]=""}if(!J(cZ[dt][3])||String(cZ[dt][3]).length===0){cZ[dt][3]=0}if(!J(cZ[dt][4])||String(cZ[dt][4]).length===0){cZ[dt][4]=1}ds.push(cZ[dt])}}dp+="&ec_items="+t(T.JSON.stringify(ds))}dp=cs(dp,ao,"ecommerce",dq);bF(dp,bJ);if(dn){cZ={}}}function bZ(di,dm,dl,dk,dj,dn){if(String(di).length&&J(dm)){bq(di,dm,dl,dk,dj,dn)}}function bs(di){if(J(di)){bq("",di,"","","","")}}function b0(dj,dl,dk){aL=bg();var di=cs("action_name="+t(al(dj||bj)),dl,"log");if(!bh){di=az(di)}bF(di,bJ,dk)}function a0(dk,dj){var dl,di="(^| )(piwik[_-]"+dj; -if(dk){for(dl=0;dl<dk.length;dl++){di+="|"+dk[dl]}}di+=")( |$)";return new RegExp(di)}function aU(di){return(aE&&di&&0===String(di).indexOf(aE))}function cu(dm,di,dn,dj){if(aU(di)){return 0}var dl=a0(bL,"download"),dk=a0(a8,"link"),dp=new RegExp("\\.("+c5.join("|")+")([?&#]|$)","i");if(dk.test(dm)){return"link"}if(dj||dl.test(dm)||dp.test(di)){return"download"}if(dn){return 0}return"link"}function au(dj){var di;di=dj.parentNode;while(di!==null&&J(di)){if(ae.isLinkElement(dj)){break}dj=di;di=dj.parentNode}return dj}function db(dn){dn=au(dn);if(!ae.hasNodeAttribute(dn,"href")){return}if(!J(dn.href)){return}var dm=ae.getAttributeValueFromNode(dn,"href");var dj=dn.pathname||cl(dn.href);var dp=dn.hostname||d(dn.href);var dq=dp.toLowerCase();var dk=dn.href.replace(dp,dq);var dl=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!dl.test(dk)){var di=cu(dn.className,dk,ar(dq,dj),ae.hasNodeAttribute(dn,"download"));if(di){return{type:di,href:dk}}}}function aP(di,dj,dk,dl){var dm=v.buildInteractionRequestParams(di,dj,dk,dl); -if(!dm){return}return cs(dm,null,"contentInteraction")}function bb(di,dj){if(!di||!dj){return false}var dk=v.findTargetNode(di);if(v.shouldIgnoreInteraction(dk)){return false}dk=v.findTargetNodeNoDefault(di);if(dk&&!V(dk,dj)){return false}return true}function ct(dk,dj,dm){if(!dk){return}var di=v.findParentContentNode(dk);if(!di){return}if(!bb(di,dk)){return}var dl=v.buildContentBlock(di);if(!dl){return}if(!dl.target&&dm){dl.target=dm}return v.buildInteractionRequestParams(dj,dl.name,dl.piece,dl.target)}function aW(dj){if(!ca||!ca.length){return false}var di,dk;for(di=0;di<ca.length;di++){dk=ca[di];if(dk&&dk.name===dj.name&&dk.piece===dj.piece&&dk.target===dj.target){return true}}return false}function aX(di){return function(dm){if(!di){return}var dk=v.findParentContentNode(di);var dj;if(dm){dj=dm.target||dm.srcElement}if(!dj){dj=di}if(!bb(dk,dj)){return}if(!dk){return false}var dn=v.findTargetNode(dk);if(!dn||v.shouldIgnoreInteraction(dn)){return false}var dl=db(dn);if(c8&&dl&&dl.type){return dl.type -}return bI.trackContentInteractionNode(dj,"click")}}function b1(dk){if(!dk||!dk.length){return}var di,dj;for(di=0;di<dk.length;di++){dj=v.findTargetNode(dk[di]);if(dj&&!dj.contentInteractionTrackingSetupDone){dj.contentInteractionTrackingSetupDone=true;an(dj,"click",aX(dj))}}}function bx(dk,dl){if(!dk||!dk.length){return[]}var di,dj;for(di=0;di<dk.length;di++){if(aW(dk[di])){dk.splice(di,1);di--}else{ca.push(dk[di])}}if(!dk||!dk.length){return[]}b1(dl);var dm=[];for(di=0;di<dk.length;di++){dj=cs(v.buildImpressionRequestParams(dk[di].name,dk[di].piece,dk[di].target),undefined,"contentImpressions");if(dj){dm.push(dj)}}return dm}function cz(dj){var di=v.collectContent(dj);return bx(di,dj)}function a9(dj){if(!dj||!dj.length){return[]}var di;for(di=0;di<dj.length;di++){if(!v.isNodeVisible(dj[di])){dj.splice(di,1);di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v.buildImpressionRequestParams(dk,di,dj);return cs(dl,null,"contentImpression")}function da(dl,dj){if(!dl){return -}var di=v.findParentContentNode(dl);var dk=v.buildContentBlock(di);if(!dk){return}if(!dj){dj="Unknown"}return aP(dj,dk.name,dk.piece,dk.target)}function cO(dj,dl,di,dk){return"e_c="+t(dj)+"&e_a="+t(dl)+(J(di)?"&e_n="+t(di):"")+(J(dk)?"&e_v="+t(dk):"")}function at(dk,dm,di,dl,dp,dn){if(!Y(dk)||!Y(dm)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dj=cs(cO(dk,dm,di,dl),dp,"event");bF(dj,bJ,dn)}function b8(di,dl,dj,dm){var dk=cs("search="+t(di)+(dl?"&search_cat="+t(dl):"")+(J(dj)?"&search_count="+dj:""),dm,"sitesearch");bF(dk,bJ)}function cS(di,dm,dl,dk){var dj=cs("idgoal="+di+(dm?"&revenue="+dm:""),dl,"goal");bF(dj,bJ,dk)}function c0(dl,di,dq,dp,dk){var dn=di+"="+t(b2(dl));var dj=ct(dk,"click",dl);if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0; -di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=bI.getVisitorId();var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}if(!bI.getVisitorId()){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase();if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di); -return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null}else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false); -an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di)}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests; -this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false -}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return -}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return -}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di] -}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true; -bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,bd="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cU=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cS=false,ci="GET",da=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",cZ="",b6=b9||"",by="",bO="",a4,bj="",c6=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","rtf","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ax=[cU],bz=[],bL=[],a8=[],bJ=500,cW=true,cJ,a5,bR,c7=1800,bP,ao,cq=["pk_campaign","mtm_campaign","piwik_campaign","matomo_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","mtm_kwd","piwik_kwd","matomo_kwd","utm_term"],bk="_pk_",av="pk_vid",aZ=180,cX,bp,bS=false,bl=false,cQ,be,bv,cK=33955200000,co=1800000,c5=15768000000,a2=true,bE=false,bh=false,bQ=false,aQ=false,cb,bW={},cm={},bm={},bt=200,ct={},c0={},c8={},ca=[],cf=false,cC=false,ap=false,c9=false,cN=false,aN=false,bc=u(),cy=null,cY=null,cc,aR,bA,b7=am,bo,aL,cr=0,bu=["id","ses","cvar","ref"],cB=false,bB=null,cL=[],aw=U++; +try{bj=G.title}catch(cz){bj=""}function de(dq,dn,dm,dp,dl,dk){if(bl){return}var dj;if(dm){dj=new Date();dj.setTime(dj.getTime()+dm)}G.cookie=dq+"="+t(dn)+(dm?";expires="+dj.toGMTString():"")+";path="+(dp||"/")+(dl?";domain="+dl:"")+(dk?";secure":"")+";SameSite=Lax"}function aD(dl){if(bl){return 0}var dj=new RegExp("(^|;)[ ]*"+dl+"=([^;]*)"),dk=dj.exec(G.cookie);return dk?S(dk[2]):0}bB=!aD(cM);function b2(dj){var dk;dj=k(dj,av);if(bP){dk=new RegExp("#.*");return dj.replace(dk,"")}return dj}function bV(dl,dj){var dm=s(dj),dk;if(dm){return dj}if(dj.slice(0,1)==="/"){return s(dl)+"://"+d(dl)+dj}dl=b2(dl);dk=dl.indexOf("?");if(dk>=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cH(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function cl(dj){var dk=document.createElement("a"); +if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk<ax.length;dk++){dm=L(ax[dk]);dp=cl(ax[dk]);if(cH(dn,dm)&&a3(dq,dp)){return true}}return false}function aV(dm){var dk,dj,dl;for(dk=0;dk<ax.length;dk++){dj=L(ax[dk].toLowerCase());if(dm===dj){return true}if(dj.slice(0,1)==="."){if(dm===dj.slice(1)){return true}dl=dm.length-dj.length;if((dl>0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1"); +var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aE,success:false})}};dk.src=aE+(aE.indexOf("?")<0?"?":"&")+dj}function cE(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aK();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aE;try{var dj=new Blob([dn],dm);if(dq&&!cE(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aE,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; +dn.open("POST",aE,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aE,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cx);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aE,success:false})}}}},50)}function cg(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cc||!a5||!bB){return}cc=setTimeout(function dk(){cc=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bR()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function ba(){bc=true;cy=new Date().getTime()}function dd(){var dj=new Date().getTime(); +return !cy||(dj-cy)>a5}function ay(){if(dd()){bR()}bK()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bR()}}})}function cD(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cC&&dj<cC){var dl=cC-dj;setTimeout(dn,dl);cg(dl+50);cC+=50;return}if(cC===false){var dm=800;cC=dj+dm}dn()}function aO(){if(aD(cM)){bB=false}else{if(aD(bd)){bB=true}}}function bF(dk,dj,dl){aO();if(!bB){cL.push(dk);return}if(!cQ&&dk){if(cB&&bB){dk+="&consent=1"}cD(function(){if(cW&&a6(dk,dl,true)){cg(100);return}if(cE(dk)){c4(dk,dl)}else{cp(dk,dl)}cg(dj)})}if(!aN){dg()}}function ck(dj){if(cQ){return false}return(dj&&dj.length)}function c3(dj,dn){if(!dn||dn>=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk<dl;dk+=dn){dm.push(dj.slice(dk,dk+dn))}return dm}function df(dk,dj){if(!ck(dk)){return}if(!bB){cL.push(dk);return}cD(function(){var dn=c3(dk,50);var dl=0,dm;for(dl;dl<dn.length;dl++){dm='{"requests":["?'+dn[dl].join('","?')+'"]}'; +if(cW&&a6(dm,null,false)){cg(100)}else{c4(dm,null,false)}}cg(dj)})}function aT(dj){return bk+dj+"."+b6+"."+bo}function bY(dl,dk,dj){de(dl,"",-86400,dk,dj)}function b5(){if(bl){return"0"}if(!J(T.showModalDialog)&&J(h.cookieEnabled)){return h.cookieEnabled?"1":"0"}var dj=bk+"testcookie";de(dj,"1",undefined,bp,cX,bS);var dk=aD(dj)==="1"?"1":"0";bY(dj);return dk}function bi(){bo=b7((cX||cU)+(bp||"/")).slice(0,4)}function cI(){if(J(c8.res)){return c8}var dk,dm,dn={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",fla:"application/x-shockwave-flash",java:"application/x-java-vm",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(dk in dn){if(Object.prototype.hasOwnProperty.call(dn,dk)){dm=h.mimeTypes[dn[dk]];c8[dk]=(dm&&dm.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&J(h.javaEnabled)&&h.javaEnabled()){c8.java="1" +}c8.cookie=b5()}var dl=parseInt(X.width,10);var dj=parseInt(X.height,10);c8.res=parseInt(dl,10)+"x"+parseInt(dj,10);return c8}function bX(){var dk=aT("cvar"),dj=aD(dk);if(dj&&dj.length){dj=T.JSON.parse(dj);if(W(dj)){return dj}}return{}}function cF(){if(aQ===false){aQ=bX()}}function cR(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)+(new Date()).getTime()+Math.random()).slice(0,16)}function aA(){var dj=cI();return b7((h.userAgent||"")+(h.platform||"")+T.JSON.stringify(dj)).slice(0,6)}function bf(){return Math.floor((new Date()).getTime()/1000)}function aJ(){var dk=bf();var dl=aA();var dj=String(dk)+dl;return dj}function c2(dl){dl=String(dl);var dp=aA();var dm=dp.length;var dn=dl.substr(-1*dm,dm);var dk=parseInt(dl.substr(0,dl.length-dm),10);if(dk&&dn&&dn===dp){var dj=bf();if(aZ<=0){return true}if(dj>=dk&&dj<=(dk+aZ)){return true}}return false}function dh(dj){if(!cN){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$"); +if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cO(){if(!bO){bO=dh(bN)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aD(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bO.length){dn[1]=bO}return dn}if(bO.length){dm=bO}else{if("0"===b5()){dm=""}else{dm=cR()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cO(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aH(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cK-dk;return dl}function aM(dj){if(!b6){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs;de(aT("id"),dm,aH(),bp,cX,bS)}function bM(){var dj=aD(aT("ref")); +if(dj.length){try{dj=T.JSON.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bw(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aD("test")===dj){bY("test",null,dk);return true}return false}function aF(){var dk=bl;bl=false;var dj,dl;for(dj=0;dj<bu.length;dj++){dl=aT(bu[dj]);if(dl!==cM&&dl!==bd&&0!==aD(dl)){bY(dl,bp,cX)}}bl=dk}function b3(dj){b6=dj;aM()}function di(dn){if(!dn||!W(dn)){return}var dm=[];var dl;for(dl in dn){if(Object.prototype.hasOwnProperty.call(dn,dl)){dm.push(dl)}}var dp={};dm.sort();var dj=dm.length;var dk;for(dk=0;dk<dj;dk++){dp[dm[dk]]=dn[dm[dk]]}return dp}function cd(){de(aT("ses"),"1",co,bp,cX,bS)}function bg(){var dm="";var dk="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var dl=dk.length;var dj;for(dj=0;dj<6;dj++){dm+=dk.charAt(Math.floor(Math.random()*dl))}return dm}function az(dj){if(i&&i.timing&&i&&i.timing.connectEnd&&i.timing.fetchStart){dj+="&pf_net="+(i.timing.connectEnd-i.timing.fetchStart)}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.requestStart){dj+="&pf_srv="+(i.timing.responseStart-i.timing.requestStart) +}if(i&&i.timing&&i&&i.timing.responseStart&&i.timing.responseEnd){dj+="&pf_tfr="+(i.timing.responseEnd-i.timing.responseStart)}if(i&&i.timing&&i&&i.timing.domInteractive&&i.timing.domLoading){dj+="&pf_dm1="+(i.timing.domInteractive-i.timing.domLoading)}if(i&&i.timing&&i&&i.timing.domComplete&&i.timing.domInteractive){dj+="&pf_dm2="+(i.timing.domComplete-i.timing.domInteractive)}if(i&&i.timing&&i&&i.timing.loadEventEnd&&i.timing.loadEventStart){dj+="&pf_onl="+(i.timing.loadEventEnd-i.timing.loadEventStart)}return dj}function cs(dl,dH,dI,dm){var dG,dk=new Date(),du=Math.round(dk.getTime()/1000),dr,dF,dn=1024,dO,dv,dD=aQ,dp=aT("ses"),dB=aT("ref"),dy=aT("cvar"),dz=aD(dp),dE=bM(),dK=a4||bN,ds,dj;if(bl){aF()}if(cQ){return""}var dA=aY();if(!J(dm)){dm=""}var dx=G.characterSet||G.charset;if(!dx||dx.toLowerCase()==="utf-8"){dx=null}ds=dE[0];dj=dE[1];dr=dE[2];dF=dE[3];if(!dz){var dJ=co/1000;if(!dA.lastVisitTs||(du-dA.lastVisitTs)>dJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bv||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]); +if(ds.length){break}}}for(dG in bG){if(Object.prototype.hasOwnProperty.call(bG,dG)){dj=f(dK,bG[dG]);if(dj.length){break}}}}dO=d(bn);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bv||!dv.length||aV(dv))){dF=bn}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b2(dF.slice(0,dn))];de(dB,T.JSON.stringify(dE),c5,bp,cX,bS)}}dl+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b2(dK))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b2(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0";var dN=cI();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension",""); +dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in ct){if(Object.prototype.hasOwnProperty.call(ct,dG)){dl+="&"+dG+"="+t(ct[dG])}}for(dG in bm){if(Object.prototype.hasOwnProperty.call(bm,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bm[dG])}}}if(dH){dl+="&data="+t(T.JSON.stringify(dH))}else{if(ao){dl+="&data="+t(T.JSON.stringify(ao))}}function dt(dP,dQ){var dR=T.JSON.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bW);var dC=di(cm);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bQ){de(dy,T.JSON.stringify(aQ),co,bp,cX,bS)}}if(a2&&bE&&!bh){dl=az(dl);bh=true}if(aL){dl+="&pv_id="+aL}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aM(dA);cd();dl+=ac(dI,{tracker:bI,request:dl});if(cZ.length){dl+="&"+cZ}if(A(cb)){dl=cb(dl)}return dl +}bR=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bI.ping();return true}return false};function bq(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(T.JSON.stringify(dt))}dq=cs(dq,ao,"ecommerce",dr);bF(dq,bJ);if(dp){c0={}}}function bZ(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bq(dj,dn,dm,dl,dk,dp)}}function bs(dj){if(J(dj)){bq("",dj,"","","","")}}function b0(dk,dm,dl){aL=bg(); +var dj=cs("action_name="+t(al(dk||bj)),dm,"log");if(!bh){dj=az(dj)}bF(dj,bJ,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm<dl.length;dm++){dj+="|"+dl[dm]}}dj+=")( |$)";return new RegExp(dj)}function aU(dj){return(aE&&dj&&0===String(dj).indexOf(aE))}function cv(dn,dj,dp,dk){if(aU(dj)){return 0}var dm=a0(bL,"download"),dl=a0(a8,"link"),dq=new RegExp("\\.("+c6.join("|")+")([?&#]|$)","i");if(dl.test(dn)){return"link"}if(dk||dm.test(dn)||dq.test(dj)){return"download"}if(dp){return 0}return"link"}function au(dk){var dj;dj=dk.parentNode;while(dj!==null&&J(dj)){if(ae.isLinkElement(dk)){break}dk=dj;dj=dk.parentNode}return dk}function dc(dp){dp=au(dp);if(!ae.hasNodeAttribute(dp,"href")){return}if(!J(dp.href)){return}var dn=ae.getAttributeValueFromNode(dp,"href");var dk=dp.pathname||cl(dp.href);var dq=dp.hostname||d(dp.href);var dr=dq.toLowerCase();var dl=dp.href.replace(dq,dr);var dm=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i"); +if(!dm.test(dl)){var dj=cv(dp.className,dl,ar(dr,dk),ae.hasNodeAttribute(dp,"download"));if(dj){return{type:dj,href:dl}}}}function aP(dj,dk,dl,dm){var dn=v.buildInteractionRequestParams(dj,dk,dl,dm);if(!dn){return}return cs(dn,null,"contentInteraction")}function bb(dj,dk){if(!dj||!dk){return false}var dl=v.findTargetNode(dj);if(v.shouldIgnoreInteraction(dl)){return false}dl=v.findTargetNodeNoDefault(dj);if(dl&&!V(dl,dk)){return false}return true}function cu(dl,dk,dn){if(!dl){return}var dj=v.findParentContentNode(dl);if(!dj){return}if(!bb(dj,dl)){return}var dm=v.buildContentBlock(dj);if(!dm){return}if(!dm.target&&dn){dm.target=dn}return v.buildInteractionRequestParams(dk,dm.name,dm.piece,dm.target)}function aW(dk){if(!ca||!ca.length){return false}var dj,dl;for(dj=0;dj<ca.length;dj++){dl=ca[dj];if(dl&&dl.name===dk.name&&dl.piece===dk.piece&&dl.target===dk.target){return true}}return false}function aX(dj){return function(dn){if(!dj){return}var dl=v.findParentContentNode(dj);var dk;if(dn){dk=dn.target||dn.srcElement +}if(!dk){dk=dj}if(!bb(dl,dk)){return}if(!dl){return false}var dp=v.findTargetNode(dl);if(!dp||v.shouldIgnoreInteraction(dp)){return false}var dm=dc(dp);if(c9&&dm&&dm.type){return dm.type}return bI.trackContentInteractionNode(dk,"click")}}function b1(dl){if(!dl||!dl.length){return}var dj,dk;for(dj=0;dj<dl.length;dj++){dk=v.findTargetNode(dl[dj]);if(dk&&!dk.contentInteractionTrackingSetupDone){dk.contentInteractionTrackingSetupDone=true;an(dk,"click",aX(dk))}}}function bx(dl,dm){if(!dl||!dl.length){return[]}var dj,dk;for(dj=0;dj<dl.length;dj++){if(aW(dl[dj])){dl.splice(dj,1);dj--}else{ca.push(dl[dj])}}if(!dl||!dl.length){return[]}b1(dm);var dn=[];for(dj=0;dj<dl.length;dj++){dk=cs(v.buildImpressionRequestParams(dl[dj].name,dl[dj].piece,dl[dj].target),undefined,"contentImpressions");if(dk){dn.push(dk)}}return dn}function cA(dk){var dj=v.collectContent(dk);return bx(dj,dk)}function a9(dk){if(!dk||!dk.length){return[]}var dj;for(dj=0;dj<dk.length;dj++){if(!v.isNodeVisible(dk[dj])){dk.splice(dj,1); +dj--}}if(!dk||!dk.length){return[]}return cA(dk)}function aG(dl,dj,dk){var dm=v.buildImpressionRequestParams(dl,dj,dk);return cs(dm,null,"contentImpression")}function db(dm,dk){if(!dm){return}var dj=v.findParentContentNode(dm);var dl=v.buildContentBlock(dj);if(!dl){return}if(!dk){dk="Unknown"}return aP(dk,dl.name,dl.piece,dl.target)}function cP(dk,dm,dj,dl){return"e_c="+t(dk)+"&e_a="+t(dm)+(J(dj)?"&e_n="+t(dj):"")+(J(dl)?"&e_v="+t(dl):"")}function at(dl,dn,dj,dm,dq,dp){if(!Y(dl)||!Y(dn)){ak("Error while logging event: Parameters `category` and `action` must not be empty or filled with whitespaces");return false}var dk=cs(cP(dl,dn,dj,dm),dq,"event");bF(dk,bJ,dp)}function b8(dj,dm,dk,dn){var dl=cs("search="+t(dj)+(dm?"&search_cat="+t(dm):"")+(J(dk)?"&search_count="+dk:""),dn,"sitesearch");bF(dl,bJ)}function cT(dj,dn,dm,dl){var dk=cs("idgoal="+dj+(dn?"&revenue="+dn:""),dm,"goal");bF(dk,bJ,dl)}function c1(dm,dj,dr,dq,dl){var dp=dj+"="+t(b2(dm));var dk=cu(dl,"click",dm);if(dk){dp+="&"+dk}var dn=cs(dp,dr,"link"); +bF(dn,bJ,dq)}function bU(dk,dj){if(dk!==""){return dk+dj.charAt(0).toUpperCase()+dj.slice(1)}return dj}function ch(dp){var dn,dj,dm=["","webkit","ms","moz"],dl;if(!be){for(dj=0;dj<dm.length;dj++){dl=dm[dj];if(Object.prototype.hasOwnProperty.call(G,bU(dl,"hidden"))){if(G[bU(dl,"visibilityState")]==="prerender"){dn=true}break}}}if(dn){an(G,dl+"visibilitychange",function dk(){G.removeEventListener(dl+"visibilitychange",dk,false);dp()});return}dp()}function br(){var dk=bI.getVisitorId();var dj=aJ();return dk+dj}function cj(dj){if(!dj){return}if(!ae.hasNodeAttribute(dj,"href")){return}var dk=ae.getAttributeValueFromNode(dj,"href");if(!dk||aU(dk)){return}if(!bI.getVisitorId()){return}dk=k(dk,av);var dl=br();dk=F(dk,av,dl);ae.setAnyAttribute(dj,"href",dk)}function aB(dm){var dn=ae.getAttributeValueFromNode(dm,"href");if(!dn){return false}dn=String(dn);var dk=dn.indexOf("//")===0||dn.indexOf("http://")===0||dn.indexOf("https://")===0;if(!dk){return false}var dj=dm.pathname||cl(dm.href);var dl=(dm.hostname||d(dm.href)).toLowerCase(); +if(ar(dl,dj)){if(!cH(cU,L(dl))){return true}return false}return false}function cG(dj){var dk=dc(dj);if(dk&&dk.type){dk.href=p(dk.href);c1(dk.href,dk.type,undefined,null,dj);return}if(cN){dj=au(dj);if(aB(dj)){cj(dj)}}}function cw(){return G.all&&!G.addEventListener}function cV(dj){var dl=dj.which;var dk=(typeof dj.button);if(!dl&&dk!=="undefined"){if(cw()){if(dj.button&1){dl=1}else{if(dj.button&2){dl=3}else{if(dj.button&4){dl=2}}}}else{if(dj.button===0||dj.button==="0"){dl=1}else{if(dj.button&1){dl=2}else{if(dj.button&2){dl=3}}}}}return dl}function bT(dj){switch(cV(dj)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(dj){return dj.target||dj.srcElement}function aC(dj){return function(dm){dm=dm||T.event;var dl=bT(dm);var dn=a1(dm);if(dm.type==="click"){var dk=false;if(dj&&dl==="middle"){dk=true}if(dn&&!dk){cG(dn)}}else{if(dm.type==="mousedown"){if(dl==="middle"&&dn){aR=dl;bA=dn}else{aR=bA=null}}else{if(dm.type==="mouseup"){if(dl===aR&&dn===bA){cG(dn)}aR=bA=null +}else{if(dm.type==="contextmenu"){cG(dn)}}}}}}function aq(dl,dk){var dj=typeof dk;if(dj==="undefined"){dk=true}an(dl,"click",aC(dk),false);if(dk){an(dl,"mouseup",aC(dk),false);an(dl,"mousedown",aC(dk),false);an(dl,"contextmenu",aC(dk),false)}}function bD(dl,dn){ap=true;var dm,dk=a0(bz,"ignore"),dp=G.links,dj=null,dq=null;if(dp){for(dm=0;dm<dp.length;dm++){dj=dp[dm];if(!dk.test(dj.className)){dq=typeof dj.piwikTrackers;if("undefined"===dq){dj.piwikTrackers=[]}if(-1===M(dj.piwikTrackers,dn)){dj.piwikTrackers.push(dn);aq(dj,dl)}}}}}function aS(dk,dn,dp){if(cf){return true}cf=true;var dq=false;var dm,dl;function dj(){dq=true}n(function(){function dr(dt){setTimeout(function(){if(!cf){return}dq=false;dp.trackVisibleContentImpressions();dr(dt)},dt)}function ds(dt){setTimeout(function(){if(!cf){return}if(dq){dq=false;dp.trackVisibleContentImpressions()}ds(dt)},dt)}if(dk){dm=["scroll","resize"];for(dl=0;dl<dm.length;dl++){if(G.addEventListener){G.addEventListener(dm[dl],dj,false)}else{T.attachEvent("on"+dm[dl],dj) +}}ds(100)}if(dn&&dn>0){dn=parseInt(dn,10);dr(dn)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bF(dj[0],bJ)}else{df(dj,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bJ);return}var dj;for(dj=0;dj<dk.length;dj++){this.push(dk[dj])}},push:function(dj){if(!dj){return}if(!this.canQueue()){bF(dj,bJ);return}bC.requests.push(dj);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dk="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dk)){b[dk]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cO()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(dj){aE=dj};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(dj,dl){if(!J(dj)||null===dj){dj=this.getTrackerUrl()}var dk=new Q(dj,dl);I.push(dk);e.trigger("TrackerAdded",[this]);return dk};this.getSiteId=function(){return b6};this.setSiteId=function(dj){b3(dj)};this.resetUserId=function(){by=""};this.setUserId=function(dj){if(Y(dj)){by=dj}};this.getUserId=function(){return by};this.setCustomData=function(dj,dk){if(W(dj)){ao=dj}else{if(!ao){ao={}}ao[dj]=dk}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(dj){cb=dj};this.appendToTrackingUrl=function(dj){cZ=dj};this.getRequest=function(dj){return cs(dj)};this.addPlugin=function(dj,dk){b[dj]=dk};this.setCustomDimension=function(dj,dk){dj=parseInt(dj,10); +if(dj>0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bm[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bm,dj)){return bm[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bm[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bt),dn.slice(0,bt)];if(dl==="visit"||dl===2){cF();aQ[dk]=dm}else{if(dl==="page"||dl===3){bW[dk]=dm}else{if(dl==="event"){cm[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj;if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bW[dk]}else{if(dl==="event"){dj=cm[dk]}else{if(dl==="visit"||dl===2){cF();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bW={} +}else{if(dj==="event"){cm={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dj){bJ=dj};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj<dk.length;dj++){c6.push(dk[dj])}};this.removeDownloadExtensions=function(dl){var dk,dj=[];if(w(dl)){dl=dl.split("|")}for(dk=0;dk<c6.length;dk++){if(M(dl,c6[dk])===-1){dj.push(c6[dk])}}c6=dj};this.setDomains=function(dj){ax=w(dj)?[dj]:dj;var dn=false,dl=0,dk;for(dl;dl<ax.length;dl++){dk=String(ax[dl]);if(cH(cU,L(dk))){dn=true;break}var dm=cl(dk);if(dm&&dm!=="/"&&dm!=="/*"){dn=true;break}}if(!dn){ax.push(cU)}};this.enableCrossDomainLinking=function(){cN=true};this.disableCrossDomainLinking=function(){cN=false};this.isCrossDomainLinkingEnabled=function(){return cN};this.setCrossDomainLinkingTimeout=function(dj){aZ=dj};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(dj){bz=w(dj)?[dj]:dj};this.setRequestMethod=function(dj){da=dj||ci};this.setRequestContentType=function(dj){cx=dj||aI};this.setReferrerUrl=function(dj){bn=dj};this.setCustomUrl=function(dj){a4=bV(bN,dj)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(dj){bj=dj};this.setAPIUrl=function(dj){bH=dj};this.setDownloadClasses=function(dj){bL=w(dj)?[dj]:dj};this.setLinkClasses=function(dj){a8=w(dj)?[dj]:dj};this.setCampaignNameKey=function(dj){cq=w(dj)?[dj]:dj};this.setCampaignKeywordKey=function(dj){bG=w(dj)?[dj]:dj};this.discardHashTag=function(dj){bP=dj};this.setCookieNamePrefix=function(dj){bk=dj;if(aQ){aQ=bX()}};this.setCookieDomain=function(dj){var dk=L(dj);if(bw(dk)){cX=dk;bi()}};this.getCookieDomain=function(){return cX};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dl,dk,dj){if(!dl){throw new Error("Missing cookie name")}if(!J(dj)){dj=co}bu.push(dl);de(aT(dl),dk,dj,bp,cX)};this.getCookie=function(dk){var dj=aD(aT(dk)); +if(dj===0){return null}return dj};this.setCookiePath=function(dj){bp=dj;bi()};this.getCookiePath=function(dj){return bp};this.setVisitorCookieTimeout=function(dj){cK=dj*1000};this.setSessionCookieTimeout=function(dj){co=dj*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(dj){c5=dj*1000};this.setConversionAttributionFirstReferrer=function(dj){bv=dj};this.setSecureCookie=function(dj){bS=dj};this.disableCookies=function(){bl=true;c8.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dk){var dj=h.doNotTrack||h.msDoNotTrack;cQ=dk&&(dj==="yes"||dj==="1");if(cQ){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cW=true};this.disableAlwaysUseSendBeacon=function(){cW=false};this.addListener=function(dk,dj){aq(dk,dj)};this.enableLinkTracking=function(dk){c9=true;var dj=this;ch(function(){q(function(){bD(dk,dj)});n(function(){bD(dk,dj)})})};this.enableJSErrorTracking=function(){if(cS){return}cS=true;var dj=T.onerror; +T.onerror=function(dp,dm,dl,dn,dk){ch(function(){var dq="JavaScript Errors";var dr=dm+":"+dl;if(dn){dr+=":"+dn}at(dq,dr,dp)});if(dj){return dj(dp,dm,dl,dn,dk)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(dj){dj=Math.max(dj,5);c7=dj};this.enableHeartBeatTimer=function(dj){dj=Math.max(dj,5);a5=(dj||15)*1000;if(cY!==null){dg()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(dj){if(T.location.protocol==="file:"){T.location=dj}};this.setCountPreRendered=function(dj){be=dj};this.trackGoal=function(dj,dm,dl,dk){ch(function(){cT(dj,dm,dl,dk)})};this.trackLink=function(dk,dj,dm,dl){ch(function(){c1(dk,dj,dm,dl)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(dj,dl,dk){ca=[];cL=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(dj,dl,dk)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var dj=v.findContentNodes();var dk=cA(dj);bC.pushMultiple(dk)})})};this.trackVisibleContentImpressions=function(dj,dk){if(N(b6)){return}if(!J(dj)){dj=true}if(!J(dk)){dk=750}aS(dj,dk,this);ch(function(){n(function(){var dl=v.findContentNodes();var dm=a9(dl);bC.pushMultiple(dm)})})};this.trackContentImpression=function(dl,dj,dk){if(N(b6)){return}dl=a(dl);dj=a(dj);dk=a(dk);if(!dl){return}dj=dj||"Unknown";ch(function(){var dm=aG(dl,dj,dk);bC.push(dm)})};this.trackContentImpressionsWithinNode=function(dj){if(N(b6)||!dj){return}ch(function(){if(cf){n(function(){var dk=v.findContentNodesWithinNode(dj);var dl=a9(dk);bC.pushMultiple(dl)})}else{q(function(){var dk=v.findContentNodesWithinNode(dj);var dl=cA(dk);bC.pushMultiple(dl)})}})};this.trackContentInteraction=function(dl,dm,dj,dk){if(N(b6)){return +}dl=a(dl);dm=a(dm);dj=a(dj);dk=a(dk);if(!dl||!dm){return}dj=dj||"Unknown";ch(function(){var dn=aP(dl,dm,dj,dk);if(dn){bC.push(dn)}})};this.trackContentInteractionNode=function(dl,dk){if(N(b6)||!dl){return}var dj=null;ch(function(){dj=db(dl,dk);if(dj){bC.push(dj)}});return dj};this.logAllContentBlocksOnPage=function(){var dl=v.findContentNodes();var dj=v.collectContent(dl);var dk=typeof console;if(dk!=="undefined"&&console&&console.log){console.log(dj)}};this.trackEvent=function(dk,dm,dj,dl,dp,dn){ch(function(){at(dk,dm,dj,dl,dp,dn)})};this.trackSiteSearch=function(dj,dl,dk,dm){ca=[];ch(function(){b8(dj,dl,dk,dm)})};this.setEcommerceView=function(dn,dj,dl,dk){ct={};if(Y(dl)){dl=String(dl)}if(!J(dl)||dl===null||dl===false||!dl.length){dl=""}else{if(dl instanceof Array){dl=T.JSON.stringify(dl)}}var dm="_pkc";ct[dm]=dl;if(J(dk)&&dk!==null&&dk!==false&&String(dk).length){dm="_pkp";ct[dm]=dk}if(!Y(dn)&&!Y(dj)){return}if(Y(dn)){dm="_pks";ct[dm]=dn}if(!Y(dj)){dj=""}dm="_pkn";ct[dm]=dj};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(c0)) +};this.addEcommerceItem=function(dn,dj,dl,dk,dm){if(Y(dn)){c0[dn]=[String(dn),dj,dl,dk,dm]}};this.removeEcommerceItem=function(dj){if(Y(dj)){dj=String(dj);delete c0[dj]}};this.clearEcommerceCart=function(){c0={}};this.trackEcommerceOrder=function(dj,dn,dm,dl,dk,dp){bZ(dj,dn,dm,dl,dk,dp)};this.trackEcommerceCartUpdate=function(dj){bs(dj)};this.trackRequest=function(dk,dm,dl,dj){ch(function(){var dn=cs(dk,dm,dj);bF(dn,bJ,dl)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(dj){if(dj<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=dj};this.queueRequest=function(dj){ch(function(){var dk=cs(dj);bC.push(dk)})};this.isConsentRequired=function(){return cB};this.getRememberedConsent=function(){var dj=aD(bd);if(aD(cM)){if(dj){bY(bd,bp,cX)}return null}if(!dj||dj===0){return null}return dj};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cB=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cM,bp,cX);var dk,dj;for(dk=0;dk<cL.length;dk++){dj=typeof cL[dk];if(dj==="string"){bF(cL[dk],bJ)}else{if(dj==="object"){df(cL[dk],bJ)}}}cL=[]};this.rememberConsentGiven=function(dk){if(dk){dk=dk*60*60*1000}else{dk=30*365*24*60*60*1000}this.setConsentGiven();var dj=new Date().getTime();de(bd,dj,dk,bp,cX,bS)};this.forgetConsentGiven=function(){var dj=30*365*24*60*60*1000;bY(bd,bp,cX);de(cM,new Date().getTime(),dj,bp,cX,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file diff --git a/plugins/API/API.php b/plugins/API/API.php index 7d961f02ab..f889329417 100644 --- a/plugins/API/API.php +++ b/plugins/API/API.php @@ -744,7 +744,8 @@ class API extends \Piwik\Plugin\API $segmentsNeedActionsInfo = array('visitConvertedGoalId', 'pageUrl', 'pageTitle', 'siteSearchKeyword', 'siteSearchCategory', 'siteSearchCount', 'entryPageTitle', 'entryPageUrl', 'exitPageTitle', 'exitPageUrl', - 'outlinkUrl', 'downloadUrl', 'eventUrl', 'orderId' + 'outlinkUrl', 'downloadUrl', 'eventUrl', 'orderId', 'productViewName', 'productViewSku', 'productViewPrice', + 'productViewCategory1', 'productViewCategory2', 'productViewCategory3', 'productViewCategory4', 'productViewCategory5' ); $isCustomVariablePage = stripos($segmentName, 'customVariablePage') !== false; $isEventSegment = stripos($segmentName, 'event') !== false; diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml index f3cd7a238a..898cab80f8 100644 --- a/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml @@ -218,7 +218,7 @@ <type>download</type> <url>http://example.org/path/file8.zip</url> <pageTitle /> - <pageIdAction>50</pageIdAction> + <pageIdAction>58</pageIdAction> <pageId>48</pageId> @@ -237,7 +237,7 @@ <type>outlink</type> <url>http://example-outlink.org/8.html</url> <pageTitle /> - <pageIdAction>51</pageIdAction> + <pageIdAction>59</pageIdAction> <pageId>49</pageId> @@ -593,7 +593,7 @@ <type>download</type> <url>http://example.org/path/file7.zip</url> <pageTitle /> - <pageIdAction>45</pageIdAction> + <pageIdAction>53</pageIdAction> <pageId>42</pageId> @@ -612,7 +612,7 @@ <type>outlink</type> <url>http://example-outlink.org/7.html</url> <pageTitle /> - <pageIdAction>46</pageIdAction> + <pageIdAction>54</pageIdAction> <pageId>43</pageId> @@ -768,6 +768,9 @@ <pageId>40</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -775,6 +778,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category7</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> @@ -989,7 +998,7 @@ <type>download</type> <url>http://example.org/path/file6.zip</url> <pageTitle /> - <pageIdAction>40</pageIdAction> + <pageIdAction>47</pageIdAction> <pageId>37</pageId> @@ -1008,7 +1017,7 @@ <type>outlink</type> <url>http://example-outlink.org/6.html</url> <pageTitle /> - <pageIdAction>41</pageIdAction> + <pageIdAction>48</pageIdAction> <pageId>38</pageId> @@ -1393,7 +1402,7 @@ <type>download</type> <url>http://example.org/path/file5.zip</url> <pageTitle /> - <pageIdAction>35</pageIdAction> + <pageIdAction>42</pageIdAction> <pageId>31</pageId> @@ -1412,7 +1421,7 @@ <type>outlink</type> <url>http://example-outlink.org/5.html</url> <pageTitle /> - <pageIdAction>36</pageIdAction> + <pageIdAction>43</pageIdAction> <pageId>32</pageId> @@ -1789,7 +1798,7 @@ <type>download</type> <url>http://example.org/path/file4.zip</url> <pageTitle /> - <pageIdAction>30</pageIdAction> + <pageIdAction>37</pageIdAction> <pageId>26</pageId> @@ -1808,7 +1817,7 @@ <type>outlink</type> <url>http://example-outlink.org/4.html</url> <pageTitle /> - <pageIdAction>31</pageIdAction> + <pageIdAction>38</pageIdAction> <pageId>27</pageId> @@ -1964,6 +1973,9 @@ <pageId>23</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -1971,6 +1983,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category4</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> @@ -2164,7 +2182,7 @@ <type>download</type> <url>http://example.org/path/file3.zip</url> <pageTitle /> - <pageIdAction>25</pageIdAction> + <pageIdAction>31</pageIdAction> <pageId>20</pageId> @@ -2183,7 +2201,7 @@ <type>outlink</type> <url>http://example-outlink.org/3.html</url> <pageTitle /> - <pageIdAction>26</pageIdAction> + <pageIdAction>32</pageIdAction> <pageId>21</pageId> @@ -2413,7 +2431,7 @@ <type>download</type> <url>http://example.org/path/file3.zip</url> <pageTitle /> - <pageIdAction>25</pageIdAction> + <pageIdAction>31</pageIdAction> <pageId>81</pageId> @@ -2432,7 +2450,7 @@ <type>outlink</type> <url>http://example-outlink.org/3.html</url> <pageTitle /> - <pageIdAction>26</pageIdAction> + <pageIdAction>32</pageIdAction> <pageId>82</pageId> @@ -2985,7 +3003,7 @@ <type>download</type> <url>http://example.org/path/file2.zip</url> <pageTitle /> - <pageIdAction>20</pageIdAction> + <pageIdAction>26</pageIdAction> <pageId>15</pageId> @@ -3004,7 +3022,7 @@ <type>outlink</type> <url>http://example-outlink.org/2.html</url> <pageTitle /> - <pageIdAction>21</pageIdAction> + <pageIdAction>27</pageIdAction> <pageId>16</pageId> @@ -3226,7 +3244,7 @@ <type>download</type> <url>http://example.org/path/file2.zip</url> <pageTitle /> - <pageIdAction>20</pageIdAction> + <pageIdAction>26</pageIdAction> <pageId>76</pageId> @@ -3245,7 +3263,7 @@ <type>outlink</type> <url>http://example-outlink.org/2.html</url> <pageTitle /> - <pageIdAction>21</pageIdAction> + <pageIdAction>27</pageIdAction> <pageId>77</pageId> @@ -3748,7 +3766,7 @@ <type>download</type> <url>http://example.org/path/file1.zip</url> <pageTitle /> - <pageIdAction>15</pageIdAction> + <pageIdAction>21</pageIdAction> <pageId>9</pageId> @@ -3767,7 +3785,7 @@ <type>outlink</type> <url>http://example-outlink.org/1.html</url> <pageTitle /> - <pageIdAction>16</pageIdAction> + <pageIdAction>22</pageIdAction> <pageId>10</pageId> @@ -3968,7 +3986,7 @@ <type>download</type> <url>http://example.org/path/file1.zip</url> <pageTitle /> - <pageIdAction>15</pageIdAction> + <pageIdAction>21</pageIdAction> <pageId>59</pageId> @@ -3987,7 +4005,7 @@ <type>outlink</type> <url>http://example-outlink.org/1.html</url> <pageTitle /> - <pageIdAction>16</pageIdAction> + <pageIdAction>22</pageIdAction> <pageId>60</pageId> @@ -4188,7 +4206,7 @@ <type>download</type> <url>http://example.org/path/file1.zip</url> <pageTitle /> - <pageIdAction>15</pageIdAction> + <pageIdAction>21</pageIdAction> <pageId>70</pageId> @@ -4207,7 +4225,7 @@ <type>outlink</type> <url>http://example-outlink.org/1.html</url> <pageTitle /> - <pageIdAction>16</pageIdAction> + <pageIdAction>22</pageIdAction> <pageId>71</pageId> @@ -4400,7 +4418,7 @@ <type>download</type> <url>http://example.org/path/file1.zip</url> <pageTitle /> - <pageIdAction>15</pageIdAction> + <pageIdAction>21</pageIdAction> <pageId>92</pageId> @@ -4419,7 +4437,7 @@ <type>outlink</type> <url>http://example-outlink.org/1.html</url> <pageTitle /> - <pageIdAction>16</pageIdAction> + <pageIdAction>22</pageIdAction> <pageId>93</pageId> @@ -4575,6 +4593,9 @@ <pageId>7</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -4582,6 +4603,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category1</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> @@ -4730,6 +4757,9 @@ <pageId>57</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -4737,6 +4767,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category1</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> @@ -4885,6 +4921,9 @@ <pageId>68</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -4892,6 +4931,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category1</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> @@ -5040,6 +5085,9 @@ <pageId>90</pageId> + <productViewPrice>17.4</productViewPrice> + <productViewName>MyName</productViewName> + <productViewSku>Custom SKU</productViewSku> <bandwidth /> <pageviewPosition>1</pageviewPosition> <title>It's <script> pitch black...</title> @@ -5047,6 +5095,12 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category1</row> + </productViewCategories> <customVariables> <row> <customVariablePageName2>Cvar 2 PAGE name</customVariablePageName2> diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml new file mode 100644 index 0000000000..3de4537c1f --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__API.getSuggestedValuesForSegment.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row>Category1</row> + <row>Category2</row> + <row>Category3</row> + <row>Category4</row> + <row>Category7</row> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml new file mode 100644 index 0000000000..795e37d874 --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewCategory__VisitsSummary.get_range.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <nb_visits>6</nb_visits> + <nb_actions>6</nb_actions> + <nb_visits_converted>6</nb_visits_converted> + <bounce_count>6</bounce_count> + <sum_visit_length>5</sum_visit_length> + <max_actions>1</max_actions> + <bounce_rate>100%</bounce_rate> + <nb_actions_per_visit>1</nb_actions_per_visit> + <avg_time_on_site>1</avg_time_on_site> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml new file mode 100644 index 0000000000..30d4eb9a25 --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__API.getSuggestedValuesForSegment.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row>MyName</row> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml new file mode 100644 index 0000000000..795e37d874 --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewName__VisitsSummary.get_range.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <nb_visits>6</nb_visits> + <nb_actions>6</nb_actions> + <nb_visits_converted>6</nb_visits_converted> + <bounce_count>6</bounce_count> + <sum_visit_length>5</sum_visit_length> + <max_actions>1</max_actions> + <bounce_rate>100%</bounce_rate> + <nb_actions_per_visit>1</nb_actions_per_visit> + <avg_time_on_site>1</avg_time_on_site> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml new file mode 100644 index 0000000000..2673898acd --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__API.getSuggestedValuesForSegment.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row>17.4</row> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml new file mode 100644 index 0000000000..795e37d874 --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewPrice__VisitsSummary.get_range.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <nb_visits>6</nb_visits> + <nb_actions>6</nb_actions> + <nb_visits_converted>6</nb_visits_converted> + <bounce_count>6</bounce_count> + <sum_visit_length>5</sum_visit_length> + <max_actions>1</max_actions> + <bounce_rate>100%</bounce_rate> + <nb_actions_per_visit>1</nb_actions_per_visit> + <avg_time_on_site>1</avg_time_on_site> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml new file mode 100644 index 0000000000..e31ca4dd4f --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__API.getSuggestedValuesForSegment.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <row>Custom SKU</row> +</result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml new file mode 100644 index 0000000000..795e37d874 --- /dev/null +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_productViewSku__VisitsSummary.get_range.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <nb_visits>6</nb_visits> + <nb_actions>6</nb_actions> + <nb_visits_converted>6</nb_visits_converted> + <bounce_count>6</bounce_count> + <sum_visit_length>5</sum_visit_length> + <max_actions>1</max_actions> + <bounce_rate>100%</bounce_rate> + <nb_actions_per_visit>1</nb_actions_per_visit> + <avg_time_on_site>1</avg_time_on_site> +</result>
\ No newline at end of file diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml index ec02c9517a..ed78948bce 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_day.xml @@ -1035,7 +1035,7 @@ <type>action</type> <url>http://www.included4.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>57</pageIdAction> + <pageIdAction>61</pageIdAction> <pageId>81</pageId> @@ -1163,7 +1163,7 @@ <type>action</type> <url>http://www.included2.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>59</pageIdAction> + <pageIdAction>63</pageIdAction> <pageId>83</pageId> diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml index b3842392c6..685defc42f 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml @@ -364,7 +364,7 @@ <type>action</type> <url>http://www.notdatefiltered.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>60</pageIdAction> + <pageIdAction>64</pageIdAction> <pageId>84</pageId> @@ -496,6 +496,8 @@ <pageId>30</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU2</productViewSku> <bandwidth>43</bandwidth> <pageviewPosition>1</pageviewPosition> <title>incredible title!</title> @@ -503,6 +505,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName3>_pks</customVariablePageName3> @@ -645,7 +650,7 @@ <type>action</type> <url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url> <pageTitle>Piwik Forums</pageTitle> - <pageIdAction>31</pageIdAction> + <pageIdAction>34</pageIdAction> <pageId>31</pageId> diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml index ec02c9517a..ed78948bce 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_day.xml @@ -1035,7 +1035,7 @@ <type>action</type> <url>http://www.included4.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>57</pageIdAction> + <pageIdAction>61</pageIdAction> <pageId>81</pageId> @@ -1163,7 +1163,7 @@ <type>action</type> <url>http://www.included2.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>59</pageIdAction> + <pageIdAction>63</pageIdAction> <pageId>83</pageId> diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml index b3842392c6..685defc42f 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml @@ -364,7 +364,7 @@ <type>action</type> <url>http://www.notdatefiltered.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>60</pageIdAction> + <pageIdAction>64</pageIdAction> <pageId>84</pageId> @@ -496,6 +496,8 @@ <pageId>30</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU2</productViewSku> <bandwidth>43</bandwidth> <pageviewPosition>1</pageviewPosition> <title>incredible title!</title> @@ -503,6 +505,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName3>_pks</customVariablePageName3> @@ -645,7 +650,7 @@ <type>action</type> <url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url> <pageTitle>Piwik Forums</pageTitle> - <pageIdAction>31</pageIdAction> + <pageIdAction>34</pageIdAction> <pageId>31</pageId> diff --git a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png index cc5af8189b..acff7f07b9 100644 --- a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png +++ b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e10b74ab626934273f88e7602bb748ff8793106b7eb55fd82eb752d5bd92a96a -size 318163 +oid sha256:58620aacd400599c532c95aa5bc6f4ec70d696b2e336cf0174af32d119d8a6a5 +size 347883 diff --git a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png index 8a89cdf9fa..eb8c2e698e 100644 --- a/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png +++ b/plugins/CoreUpdater/tests/UI/expected-screenshots/CoreUpdaterDb_main_instance.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ccbc587b85f918b20502831627d589b1476b128870c8942b0e54eec1857a509 -size 319558 +oid sha256:e4e8b16346b3fbd16c03a169f2e216e6bceada2ef8d8efb8ce1a9c73cd68c013 +size 349415 diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions -Subproject d36a3d533408e8d4a1ea749f68a6e805334fa26 +Subproject 4f12c89fd19eb726d04781c38c5a14032197483 diff --git a/plugins/CustomVariables/Archiver.php b/plugins/CustomVariables/Archiver.php index c580220a47..b8970b27e1 100644 --- a/plugins/CustomVariables/Archiver.php +++ b/plugins/CustomVariables/Archiver.php @@ -12,6 +12,7 @@ use Piwik\Config; use Piwik\DataAccess\LogAggregator; use Piwik\DataArray; use Piwik\DataTable; +use Piwik\DbHelper; use Piwik\Metrics; use Piwik\Tracker\GoalManager; use Piwik\Tracker; @@ -107,7 +108,9 @@ class Archiver extends \Piwik\Plugin\Archiver // then we also query the "Product page view" price which was possibly recorded. $additionalSelects = false; - if (in_array($slot, array(\MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_SKU, \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_NAME, \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_CATEGORY))) { + // Before Matomo 4.0.0 ecommerce views were tracked in custom variables + // So if Matomo was installed before still try to archive it the old way, as old data might be archived + if (version_compare(DbHelper::getInstallVersion(),'4.0.0-b2', '<') && in_array($slot, array(3, 4, 5))) { $additionalSelects = array($this->getSelectAveragePrice()); } $query = $this->getLogAggregator()->queryActionsByDimension($dimensions, $where, $additionalSelects); @@ -119,7 +122,7 @@ class Archiver extends \Piwik\Plugin\Archiver protected function getSelectAveragePrice() { - $field = "custom_var_v" . \MatomoTracker::CVAR_INDEX_ECOMMERCE_ITEM_PRICE; + $field = "custom_var_v2"; return LogAggregator::getSqlRevenue("AVG(log_link_visit_action." . $field . ")") . " as `" . Metrics::INDEX_ECOMMERCE_ITEM_PRICE_VIEWED . "`"; } diff --git a/plugins/Ecommerce/Columns/ProductViewCategory.php b/plugins/Ecommerce/Columns/ProductViewCategory.php new file mode 100644 index 0000000000..b047fe3c7c --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewCategory.php @@ -0,0 +1,132 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\DimensionSegmentFactory; +use Piwik\Columns\Discriminator; +use Piwik\Columns\Join\ActionNameJoin; +use Piwik\Common; +use Piwik\Db; +use Piwik\Log; +use Piwik\Plugin\Dimension\ActionDimension; +use Piwik\Plugin\Segment; +use Piwik\Segment\SegmentsList; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; +use Piwik\Tracker\Visitor; + +class ProductViewCategory extends ActionDimension +{ + protected $type = self::TYPE_TEXT; + protected $nameSingular = 'Ecommerce_ViewedProductCategory'; + protected $columnName = 'idaction_product_cat'; + protected $segmentName = 'productViewCategory'; + protected $columnType = 'INT(10) UNSIGNED NULL'; + protected $category = 'Goals_Ecommerce'; + protected $categoryNumber = 1; + + public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory) + { + $individualProductCategorySegments = $this->getProductCategorySegments(ProductCategory::PRODUCT_CATEGORY_COUNT); + + // add individual productCategoryN segments for use as a union (these segments are not available through the UI/API) + foreach ($individualProductCategorySegments as $i => $productCategoryName) { + $productCategoryColumnName = 'idaction_product_cat'; + if ($i > 0) { + $productCategoryColumnName .= $i + 1; + } + + $segment = new Segment(); + $segment->setCategory($this->category); + $segment->setType('dimension'); + $segment->setName($this->getName() . ' ' . ($i + 1)); + $segment->setSegment($productCategoryName); + $segment->setSqlFilter('\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment'); + $segment->setSqlSegment('log_link_visit_action.' . $productCategoryColumnName); + $segment->setIsInternal(true); + $segment->setSuggestedValuesCallback(function ($idSite, $maxValuesToReturn, $table) { + $values = []; + foreach ($table->getRows() as $row) { + foreach ($row->getColumn('actionDetails') as $actionRow) { + if (isset($actionRow['productViewCategories'])) { + $values = array_merge($values, $actionRow['productViewCategories']); + } + } + } + return $values; + }); + $segmentsList->addSegment($dimensionSegmentFactory->createSegment($segment)); + } + + // add a union of these individual columns as productCategory + $segment = new Segment(); + $segment->setCategory($this->category); + $segment->setType('dimension'); + $segment->setSegment('productViewCategory'); + $segment->setName($this->getName()); + $segment->setUnionOfSegments($individualProductCategorySegments); + $segmentsList->addSegment($dimensionSegmentFactory->createSegment($segment)); + } + + private function getProductCategorySegments($categoryCount) + { + $result = []; + for ($i = 0; $i < $categoryCount; ++$i) { + $segmentName = 'productViewCategory' . ($i + 1); + $result[] = $segmentName; + } + return $result; + } + + public function getDbColumnJoin() + { + return new ActionNameJoin(); + } + + public function getDbDiscriminator() + { + return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_CATEGORY); + } + + public function onLookupAction(Request $request, Action $action) + { + if ($request->hasParam('_pkc')) { + $categories = Common::unsanitizeInputValue($request->getParam('_pkc')); + $categories = $this->handleCategoryParam($categories); + + return $categories[$this->categoryNumber - 1] ?? false; + } + + // fall back to custom variables (might happen if old logs are replayed) + $customVariables = $request->getCustomVariablesInPageScope(); + if (isset($customVariables['custom_var_k5']) && $customVariables['custom_var_k5'] === '_pkc') { + $categories = $this->handleCategoryParam($customVariables['custom_var_v5'] ?? ''); + + return $categories[$this->categoryNumber - 1] ?? false; + } + + return parent::onLookupAction($request, $action); + } + + protected function handleCategoryParam($categories) + { + if (0 === strpos($categories, '["')) { + $categories = array_values(array_filter(@\json_decode($categories, true))); + } else { + $categories = [$categories]; + } + + return $categories; + } + + public function getActionId() + { + return Action::TYPE_ECOMMERCE_ITEM_CATEGORY; + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewCategory2.php b/plugins/Ecommerce/Columns/ProductViewCategory2.php new file mode 100644 index 0000000000..b0ecbfda91 --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewCategory2.php @@ -0,0 +1,23 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\DimensionSegmentFactory; +use Piwik\Segment\SegmentsList; + +class ProductViewCategory2 extends ProductViewCategory +{ + protected $columnName = 'idaction_product_cat2'; + protected $categoryNumber = 2; + + public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory) + { + // handled in category 1 + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewCategory3.php b/plugins/Ecommerce/Columns/ProductViewCategory3.php new file mode 100644 index 0000000000..e8dd10e1b3 --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewCategory3.php @@ -0,0 +1,23 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\DimensionSegmentFactory; +use Piwik\Segment\SegmentsList; + +class ProductViewCategory3 extends ProductViewCategory +{ + protected $columnName = 'idaction_product_cat3'; + protected $categoryNumber = 3; + + public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory) + { + // handled in category 1 + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewCategory4.php b/plugins/Ecommerce/Columns/ProductViewCategory4.php new file mode 100644 index 0000000000..81fe96ccc1 --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewCategory4.php @@ -0,0 +1,23 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\DimensionSegmentFactory; +use Piwik\Segment\SegmentsList; + +class ProductViewCategory4 extends ProductViewCategory +{ + protected $columnName = 'idaction_product_cat4'; + protected $categoryNumber = 4; + + public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory) + { + // handled in category 1 + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewCategory5.php b/plugins/Ecommerce/Columns/ProductViewCategory5.php new file mode 100644 index 0000000000..21edfeffef --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewCategory5.php @@ -0,0 +1,23 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\DimensionSegmentFactory; +use Piwik\Segment\SegmentsList; + +class ProductViewCategory5 extends ProductViewCategory +{ + protected $columnName = 'idaction_product_cat5'; + protected $categoryNumber = 5; + + public function configureSegments(SegmentsList $segmentsList, DimensionSegmentFactory $dimensionSegmentFactory) + { + // handled in category 1 + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewName.php b/plugins/Ecommerce/Columns/ProductViewName.php new file mode 100644 index 0000000000..687a3cd52b --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewName.php @@ -0,0 +1,57 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\Discriminator; +use Piwik\Columns\Join\ActionNameJoin; +use Piwik\Common; +use Piwik\Plugin\Dimension\ActionDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; + +class ProductViewName extends ActionDimension +{ + protected $type = self::TYPE_TEXT; + protected $nameSingular = 'Ecommerce_ViewedProductName'; + protected $columnName = 'idaction_product_name'; + protected $segmentName = 'productViewName'; + protected $columnType = 'INT(10) UNSIGNED NULL'; + protected $category = 'Goals_Ecommerce'; + protected $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment'; + + public function getDbColumnJoin() + { + return new ActionNameJoin(); + } + + public function getDbDiscriminator() + { + return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_NAME); + } + + public function onLookupAction(Request $request, Action $action) + { + if ($request->hasParam('_pkn')) { + return Common::unsanitizeInputValue($request->getParam('_pkn')); + } + + // fall back to custom variables (might happen if old logs are replayed) + $customVariables = $request->getCustomVariablesInPageScope(); + if (isset($customVariables['custom_var_k4']) && $customVariables['custom_var_k4'] === '_pkn') { + return $customVariables['custom_var_v4'] ?? false; + } + + return parent::onLookupAction($request, $action); + } + + public function getActionId() + { + return Action::TYPE_ECOMMERCE_ITEM_NAME; + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewPrice.php b/plugins/Ecommerce/Columns/ProductViewPrice.php new file mode 100644 index 0000000000..2b8b96fbb6 --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewPrice.php @@ -0,0 +1,40 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Plugin\Dimension\ActionDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; +use Piwik\Tracker\Visitor; + +class ProductViewPrice extends ActionDimension +{ + protected $type = self::TYPE_MONEY; + protected $nameSingular = 'Ecommerce_ViewedProductPrice'; + protected $columnName = 'product_price'; + protected $segmentName = 'productViewPrice'; + protected $columnType = 'DOUBLE NULL'; + protected $category = 'Goals_Ecommerce'; + + public function onNewAction(Request $request, Visitor $visitor, Action $action) + { + $price = $request->getParam('_pkp'); + if (is_numeric($price)) { + return $price; + } + + // fall back to custom variables (might happen if old logs are replayed) + $customVariables = $request->getCustomVariablesInPageScope(); + if (isset($customVariables['custom_var_k2']) && $customVariables['custom_var_k2'] === '_pkp') { + return $customVariables['custom_var_v2'] ?? false; + } + + return parent::onNewAction($request, $visitor, $action); + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Columns/ProductViewSku.php b/plugins/Ecommerce/Columns/ProductViewSku.php new file mode 100644 index 0000000000..140f125801 --- /dev/null +++ b/plugins/Ecommerce/Columns/ProductViewSku.php @@ -0,0 +1,57 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Ecommerce\Columns; + +use Piwik\Columns\Discriminator; +use Piwik\Columns\Join\ActionNameJoin; +use Piwik\Common; +use Piwik\Plugin\Dimension\ActionDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; + +class ProductViewSku extends ActionDimension +{ + protected $type = self::TYPE_TEXT; + protected $nameSingular = 'Ecommerce_ViewedProductSKU'; + protected $columnName = 'idaction_product_sku'; + protected $segmentName = 'productViewSku'; + protected $columnType = 'INT(10) UNSIGNED NULL'; + protected $category = 'Goals_Ecommerce'; + protected $sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment'; + + public function getDbColumnJoin() + { + return new ActionNameJoin(); + } + + public function getDbDiscriminator() + { + return new Discriminator('log_action', 'type', Action::TYPE_ECOMMERCE_ITEM_SKU); + } + + public function onLookupAction(Request $request, Action $action) + { + if ($request->hasParam('_pks')) { + return Common::unsanitizeInputValue($request->getParam('_pks')); + } + + // fall back to custom variables (might happen if old logs are replayed) + $customVariables = $request->getCustomVariablesInPageScope(); + if (isset($customVariables['custom_var_k3']) && $customVariables['custom_var_k3'] === '_pks') { + return $customVariables['custom_var_v3'] ?? false; + } + + return parent::onLookupAction($request, $action); + } + + public function getActionId() + { + return Action::TYPE_ECOMMERCE_ITEM_SKU; + } +}
\ No newline at end of file diff --git a/plugins/Ecommerce/Ecommerce.php b/plugins/Ecommerce/Ecommerce.php index 8b6a447482..ea5a6a559d 100644 --- a/plugins/Ecommerce/Ecommerce.php +++ b/plugins/Ecommerce/Ecommerce.php @@ -9,25 +9,43 @@ namespace Piwik\Plugins\Ecommerce; use Piwik\Columns\ComputedMetricFactory; use Piwik\Columns\MetricsList; -use Piwik\Piwik; +use Piwik\Common; use Piwik\Plugin\ArchivedMetric; use Piwik\Plugin\ComputedMetric; +use Piwik\Plugins\Ecommerce\Columns\ProductCategory; /** * */ class Ecommerce extends \Piwik\Plugin { - /** * @see \Piwik\Plugin::registerEvents */ public function registerEvents() { - $hooks = array( - 'Metric.addComputedMetrics' => 'addComputedMetrics' - ); - return $hooks; + return [ + 'Metric.addComputedMetrics' => 'addComputedMetrics', + 'Actions.getCustomActionDimensionFieldsAndJoins' => 'provideActionDimensionFields' + ]; + } + + public function provideActionDimensionFields(&$fields, &$joins) + { + $fields[] = 'log_link_visit_action.product_price as productViewPrice'; + $fields[] = 'log_action_productview_name.name as productViewName'; + $fields[] = 'log_action_productview_sku.name as productViewSku'; + $joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_name + ON log_link_visit_action.idaction_product_name = log_action_productview_name.idaction'; + $joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_sku + ON log_link_visit_action.idaction_product_sku = log_action_productview_sku.idaction'; + + for($i = 1; $i <= ProductCategory::PRODUCT_CATEGORY_COUNT; $i++) { + $suffix = $i > 1 ? $i : ''; + $fields[] = "log_action_productview_category$i.name as productViewCategory$i"; + $joins[] = "LEFT JOIN " . Common::prefixTable('log_action') . " AS log_action_productview_category$i + ON log_link_visit_action.idaction_product_cat$suffix = log_action_productview_category$i.idaction"; + } } public function addComputedMetrics(MetricsList $list, ComputedMetricFactory $computedMetricFactory) diff --git a/plugins/Ecommerce/VisitorDetails.php b/plugins/Ecommerce/VisitorDetails.php index 220d7ba9fc..5b2e20a667 100644 --- a/plugins/Ecommerce/VisitorDetails.php +++ b/plugins/Ecommerce/VisitorDetails.php @@ -15,6 +15,7 @@ use Piwik\Date; use Piwik\Db; use Piwik\Metrics\Formatter; use Piwik\Piwik; +use Piwik\Plugins\Ecommerce\Columns\ProductCategory; use Piwik\Plugins\Live\VisitorDetailsAbstract; use Piwik\Site; use Piwik\Tracker\Action; @@ -39,6 +40,45 @@ class VisitorDetails extends VisitorDetailsAbstract $visitor['totalAbandonedCartsItems'] = $ecommerceMetrics['totalAbandonedCartsItems']; } + public function extendActionDetails(&$action, $nextAction, $visitorDetails) + { + if (empty($action['productViewName'])) { + unset($action['productViewName']); + } + if (empty($action['productViewSku'])) { + unset($action['productViewSku']); + } + if (empty($action['productViewPrice'])) { + unset($action['productViewPrice']); + } + + $categories = []; + for($i = 1; $i <= ProductCategory::PRODUCT_CATEGORY_COUNT; $i++) { + if (!empty($action['productViewCategory'.$i])) { + $categories[] = $action['productViewCategory'.$i]; + } + + unset($action['productViewCategory'.$i]); + } + if (!empty($categories)) { + $action['productViewCategories'] = $categories; + } + } + + public function renderActionTooltip($action, $visitInfo) + { + if (!isset($action['productViewName']) && !isset($action['productViewSku']) && + !isset($action['productViewPrice']) && !isset($action['productViewCategories'])) { + return []; + } + + $view = new View('@Ecommerce/_actionTooltip'); + $view->sendHeadersWhenRendering = false; + $view->action = $action; + $view->visitInfo = $visitInfo; + return [[ 15, $view->render() ]]; + } + public function provideActionsForVisitIds(&$actions, $idVisits) { $ecommerceDetails = $this->queryEcommerceConversionsForVisits($idVisits); diff --git a/plugins/Ecommerce/lang/en.json b/plugins/Ecommerce/lang/en.json index bd2960eee4..e8cfa5ec1d 100644 --- a/plugins/Ecommerce/lang/en.json +++ b/plugins/Ecommerce/lang/en.json @@ -5,6 +5,10 @@ "Order": "Order", "OrderId": "Order ID", "Orders": "Orders", + "ViewedProductCategory": "Viewed Product Category", + "ViewedProductName": "Viewed Product Name", + "ViewedProductPrice": "Viewed Product Price", + "ViewedProductSKU": "Viewed Product SKU", "SalesBy": "Sales by %s", "SalesAdjective": "Sales %s", "NumberOfItems": "Number of Items in Cart", diff --git a/plugins/Ecommerce/templates/_actionTooltip.twig b/plugins/Ecommerce/templates/_actionTooltip.twig new file mode 100644 index 0000000000..2db9e51ece --- /dev/null +++ b/plugins/Ecommerce/templates/_actionTooltip.twig @@ -0,0 +1,15 @@ + +{% apply spaceless %} +{% if action.productViewName is defined %} +{{ 'Ecommerce_ViewedProductName'|translate }}: {{ action.productViewName }} +{% endif %} +{% if action.productViewSku is defined %} +{{ 'Ecommerce_ViewedProductSKU'|translate }}: {{ action.productViewSku }} +{% endif %} +{% if action.productViewPrice is defined %} +{{ 'Ecommerce_ViewedProductPrice'|translate }}: {{ action.productViewPrice|money(visitInfo.idSite) }} +{% endif %} +{% if action.productViewCategories is defined %} +{{ 'Ecommerce_ViewedProductCategory'|translate }}: {{ action.productViewCategories|implode(', ') }} +{% endif %} +{% endapply %}
\ No newline at end of file diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml index 68c9d35408..5ebc8bab40 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsCategory_day.xml @@ -4,8 +4,8 @@ <label>Category TWO LEFT in cart</label> <revenue>4000</revenue> <quantity>4</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>1000</avg_price> @@ -16,8 +16,8 @@ <label>second category</label> <revenue>4000</revenue> <quantity>4</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>1000</avg_price> @@ -28,8 +28,8 @@ <label>Product Category not defined</label> <revenue>1000.22</revenue> <quantity>2</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>500.11</avg_price> @@ -40,8 +40,8 @@ <label>Electronics & Cameras</label> <revenue>20</revenue> <quantity>2</quantity> - <nb_uniq_visitors>2</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> <nb_actions>6</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>10</avg_price> @@ -50,8 +50,8 @@ </row> <row> <label>Multiple Category 1</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -59,8 +59,8 @@ </row> <row> <label>Multiple Category 2</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -68,8 +68,8 @@ </row> <row> <label>Multiple Category 4</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -77,8 +77,8 @@ </row> <row> <label>Multiple Category 5</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml index 76195df336..a36d584040 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsName_day.xml @@ -4,8 +4,8 @@ <label>PRODUCT TWO LEFT in cart</label> <revenue>4000</revenue> <quantity>4</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>1000</avg_price> @@ -25,8 +25,8 @@ <label>PRODUCT THREE LEFT in cart</label> <revenue>20</revenue> <quantity>2</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>4</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>10</avg_price> @@ -35,8 +35,8 @@ </row> <row> <label>PRODUCT name</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>832.78</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml index ca2b2296ed..1815a93d1b 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_AbandonedCarts__Goals.getItemsSku_day.xml @@ -4,8 +4,8 @@ <label>SKU IN ABANDONED CART TWO</label> <revenue>4000</revenue> <quantity>4</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>1000</avg_price> @@ -25,8 +25,8 @@ <label>SKU VERY nice indeed</label> <revenue>20</revenue> <quantity>2</quantity> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>8</nb_actions> <abandoned_carts>2</abandoned_carts> <avg_price>10</avg_price> @@ -35,8 +35,8 @@ </row> <row> <label>SKU2</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>1111.11</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml index 1650d5e51f..cbbcfdfb97 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml @@ -180,6 +180,9 @@ <pageId>14</pageId> + <productViewPrice>999</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -189,24 +192,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>999</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -217,6 +202,9 @@ <pageId>15</pageId> + <productViewPrice>333</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -226,24 +214,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>333</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -254,6 +224,8 @@ <pageId>16</pageId> + <productViewName>PRODUCT TWO LEFT in cart</productViewName> + <productViewSku>SKU IN ABANDONED CART TWO</productViewSku> <bandwidth /> <timeSpent>361</timeSpent> <timeSpentPretty>6 min 1s</timeSpentPretty> @@ -263,20 +235,10 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>["Category TWO LEFT in cart","second category"]</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Category TWO LEFT in cart</row> + <row>second category</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml index b5f207b970..79ae7dbac9 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsCategory__API.getProcessedReport_day.xml @@ -123,8 +123,8 @@ <quantity>18</quantity> <price>4111.22</price> <orders>8</orders> - <nb_uniq_visitors>9</nb_uniq_visitors> <nb_visits>14</nb_visits> + <nb_uniq_visitors>9</nb_uniq_visitors> <nb_actions>19</nb_actions> </reportTotal> </result>
\ No newline at end of file diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml index 6aadc31921..9c345af89b 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_Metadata_ItemsSku__API.getProcessedReport_day.xml @@ -83,8 +83,8 @@ <quantity>10</quantity> <price>2111.22</price> <orders>4</orders> - <nb_uniq_visitors>3</nb_uniq_visitors> <nb_visits>6</nb_visits> + <nb_uniq_visitors>3</nb_uniq_visitors> <nb_actions>11</nb_actions> </reportTotal> </result>
\ No newline at end of file diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml index 02187588c4..5747aa5989 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsCategory_day.xml @@ -2,8 +2,8 @@ <result> <row> <label>Electronics & Cameras</label> - <nb_uniq_visitors>2</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> <nb_actions>3</nb_actions> <avg_price>888.56</avg_price> <avg_quantity>0</avg_quantity> @@ -11,8 +11,8 @@ </row> <row> <label>Multiple Category 1</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -20,8 +20,8 @@ </row> <row> <label>Multiple Category 2</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -29,8 +29,8 @@ </row> <row> <label>Multiple Category 4</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -38,8 +38,8 @@ </row> <row> <label>Multiple Category 5</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -47,8 +47,8 @@ </row> <row> <label>Product Category not defined</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>888</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml index bf093d7b73..86d4007206 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsName_day.xml @@ -2,8 +2,8 @@ <result> <row> <label>PRODUCT name</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>4</nb_actions> <avg_price>888.37</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml index 505b4d6109..5a693793cb 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentCountryIsFr__Goals.getItemsSku_day.xml @@ -2,8 +2,8 @@ <result> <row> <label>SKU2</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>1111.11</avg_price> <avg_quantity>0</avg_quantity> @@ -11,8 +11,8 @@ </row> <row> <label>SKU VERY nice indeed</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>3</nb_actions> <avg_price>777</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml index ceefbebe55..7b50d0b1c3 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsCategory_day.xml @@ -5,8 +5,8 @@ <revenue>2500</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>2</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> <nb_actions>6</nb_actions> <avg_price>1000</avg_price> <avg_quantity>1.5</avg_quantity> @@ -17,8 +17,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -29,8 +29,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -41,8 +41,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -53,8 +53,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -65,8 +65,8 @@ <revenue>611.22</revenue> <quantity>7</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>55.61</avg_price> <avg_quantity>3.5</avg_quantity> @@ -74,8 +74,8 @@ </row> <row> <label>Category TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -83,8 +83,8 @@ </row> <row> <label>second category</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml index 8beefcdba1..4de9730ec6 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsName_day.xml @@ -14,8 +14,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -32,8 +32,8 @@ </row> <row> <label>PRODUCT TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -41,8 +41,8 @@ </row> <row> <label>PRODUCT THREE LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>4</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml index 83b6b8ab73..0d55589eb7 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems_SegmentPageUrlContains__Goals.getItemsSku_day.xml @@ -5,8 +5,8 @@ <revenue>1500</revenue> <quantity>1</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>1500</avg_price> <avg_quantity>1</avg_quantity> @@ -17,8 +17,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>8</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -35,8 +35,8 @@ </row> <row> <label>SKU IN ABANDONED CART TWO</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml index f12f1fc15e..0610027789 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__CustomVariables.getCustomVariables_day.xml @@ -159,124 +159,6 @@ </subtable> </row> <row> - <label>_pkn</label> - <nb_visits>6</nb_visits> - <nb_actions>11</nb_actions> - <slots> - <row> - <scope>page</scope> - <index>4</index> - </row> - </slots> - <segment>customVariableName==_pkn</segment> - <subtable> - <row> - <label>PRODUCT name</label> - <nb_visits>2</nb_visits> - <nb_actions>5</nb_actions> - <price_viewed>832.78</price_viewed> - </row> - <row> - <label>PRODUCT THREE LEFT in cart</label> - <nb_visits>2</nb_visits> - <nb_actions>4</nb_actions> - <price_viewed>666</price_viewed> - </row> - <row> - <label>PRODUCT TWO LEFT in cart</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - </subtable> - </row> - <row> - <label>_pks</label> - <nb_visits>6</nb_visits> - <nb_actions>11</nb_actions> - <slots> - <row> - <scope>page</scope> - <index>3</index> - </row> - </slots> - <segment>customVariableName==_pks</segment> - <subtable> - <row> - <label>SKU VERY nice indeed</label> - <nb_visits>3</nb_visits> - <nb_actions>8</nb_actions> - <price_viewed>697.71</price_viewed> - </row> - <row> - <label>SKU IN ABANDONED CART TWO</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>SKU2</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - <price_viewed>1111.11</price_viewed> - </row> - </subtable> - </row> - <row> - <label>_pkc</label> - <nb_visits>5</nb_visits> - <nb_actions>10</nb_actions> - <slots> - <row> - <scope>page</scope> - <index>5</index> - </row> - </slots> - <segment>customVariableName==_pkc</segment> - <subtable> - <row> - <label>Electronics & Cameras</label> - <nb_visits>3</nb_visits> - <nb_actions>6</nb_actions> - <price_viewed>814.37</price_viewed> - </row> - <row> - <label>Value not defined</label> - <nb_visits>3</nb_visits> - <nb_actions>5</nb_actions> - <price_viewed>710.4</price_viewed> - </row> - <row> - <label>Category TWO LEFT in cart</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>second category</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>Multiple Category 1</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - <row> - <label>Multiple Category 2</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - <row> - <label>Multiple Category 4</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - <row> - <label>Multiple Category 5</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - </subtable> - </row> - <row> <label>VisitorName</label> <nb_visits>2</nb_visits> <nb_actions>9</nb_actions> @@ -345,43 +227,4 @@ </row> </subtable> </row> - <row> - <label>_pkp</label> - <nb_visits>8</nb_visits> - <nb_actions>8</nb_actions> - <slots> - <row> - <scope>page</scope> - <index>2</index> - </row> - </slots> - <segment>customVariableName==_pkp</segment> - <subtable> - <row> - <label>333</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>666</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>999</label> - <nb_visits>2</nb_visits> - <nb_actions>2</nb_actions> - </row> - <row> - <label>888</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - <row> - <label>1111.11111</label> - <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - </row> - </subtable> - </row> </result>
\ No newline at end of file diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml index ceefbebe55..7b50d0b1c3 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsCategory_day.xml @@ -5,8 +5,8 @@ <revenue>2500</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>2</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> <nb_actions>6</nb_actions> <avg_price>1000</avg_price> <avg_quantity>1.5</avg_quantity> @@ -17,8 +17,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -29,8 +29,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -41,8 +41,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -53,8 +53,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -65,8 +65,8 @@ <revenue>611.22</revenue> <quantity>7</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>55.61</avg_price> <avg_quantity>3.5</avg_quantity> @@ -74,8 +74,8 @@ </row> <row> <label>Category TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -83,8 +83,8 @@ </row> <row> <label>second category</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml index 8beefcdba1..4de9730ec6 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsName_day.xml @@ -14,8 +14,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -32,8 +32,8 @@ </row> <row> <label>PRODUCT TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -41,8 +41,8 @@ </row> <row> <label>PRODUCT THREE LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>4</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml index 83b6b8ab73..0d55589eb7 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Goals.getItemsSku_day.xml @@ -5,8 +5,8 @@ <revenue>1500</revenue> <quantity>1</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>1500</avg_price> <avg_quantity>1</avg_quantity> @@ -17,8 +17,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>8</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -35,8 +35,8 @@ </row> <row> <label>SKU IN ABANDONED CART TWO</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml index 2c163842d7..cb987fe9ac 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml @@ -15,6 +15,9 @@ <pageId>11</pageId> + <productViewPrice>999</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -24,24 +27,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>999</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -52,6 +37,9 @@ <pageId>12</pageId> + <productViewPrice>333</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -61,24 +49,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>333</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -89,6 +59,8 @@ <pageId>13</pageId> + <productViewName>PRODUCT TWO LEFT in cart</productViewName> + <productViewSku>SKU IN ABANDONED CART TWO</productViewSku> <bandwidth /> <timeSpent>361</timeSpent> <timeSpentPretty>6 min 1s</timeSpentPretty> @@ -98,20 +70,10 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>["Category TWO LEFT in cart","second category"]</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Category TWO LEFT in cart</row> + <row>second category</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -292,12 +254,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>Electronics & Cameras</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -317,12 +276,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>Electronics & Cameras</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -333,6 +289,9 @@ <pageId>7</pageId> + <productViewPrice>666</productViewPrice> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>720</timeSpent> <timeSpentPretty>12 min 0s</timeSpentPretty> @@ -342,24 +301,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>666</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT name</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>Electronics & Cameras</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -417,15 +361,6 @@ <itemDetails> <row> - <itemSKU>SKU VERY nice indeed</itemSKU> - <itemName>PRODUCT name</itemName> - <itemCategory /> - <price>11.22</price> - <quantity>1</quantity> - <categories> - </categories> - </row> - <row> <itemSKU>SKU2</itemSKU> <itemName>Canon SLR</itemName> <itemCategory>Electronics & Cameras</itemCategory> @@ -435,11 +370,20 @@ <row>Electronics & Cameras</row> </categories> </row> + <row> + <itemSKU>SKU VERY nice indeed</itemSKU> + <itemName>PRODUCT name</itemName> + <itemCategory /> + <price>11.22</price> + <quantity>1</quantity> + <categories> + </categories> + </row> </itemDetails> <icon>plugins/Morpheus/images/ecommerceOrder.png</icon> <iconSVG>plugins/Morpheus/images/ecommerceOrder.svg</iconSVG> <title>Ordered (1037nsjusu4s3894)</title> - <subtitle>$2,000 revenue - 2 items: PRODUCT name, Canon SLR)</subtitle> + <subtitle>$2,000 revenue - 2 items: Canon SLR, PRODUCT name)</subtitle> </row> <row> @@ -450,6 +394,9 @@ <pageId>8</pageId> + <productViewPrice>999</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -459,24 +406,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>999</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -487,6 +416,9 @@ <pageId>9</pageId> + <productViewPrice>333</productViewPrice> + <productViewName>PRODUCT THREE LEFT in cart</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>180</timeSpent> <timeSpentPretty>3 min 0s</timeSpentPretty> @@ -496,24 +428,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>333</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT THREE LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -524,6 +438,8 @@ <pageId>10</pageId> + <productViewName>PRODUCT TWO LEFT in cart</productViewName> + <productViewSku>SKU IN ABANDONED CART TWO</productViewSku> <bandwidth /> <timeSpent>361</timeSpent> <timeSpentPretty>6 min 1s</timeSpentPretty> @@ -533,20 +449,10 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU IN ABANDONED CART TWO</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT TWO LEFT in cart</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>["Category TWO LEFT in cart","second category"]</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Category TWO LEFT in cart</row> + <row>second category</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -718,6 +624,9 @@ <pageId>1</pageId> + <productViewPrice>1111.11111</productViewPrice> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU2</productViewSku> <bandwidth /> <timeSpent>360</timeSpent> <timeSpentPretty>6 min 0s</timeSpentPretty> @@ -727,24 +636,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>1111.11111</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU2</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT name</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>Electronics & Cameras</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -770,6 +664,9 @@ <pageId>2</pageId> + <productViewPrice>666</productViewPrice> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>360</timeSpent> <timeSpentPretty>6 min 0s</timeSpentPretty> @@ -779,24 +676,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>666</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT name</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>Electronics & Cameras</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -807,6 +689,9 @@ <pageId>3</pageId> + <productViewPrice>888</productViewPrice> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <timeSpent>0</timeSpent> <timeSpentPretty>0s</timeSpentPretty> @@ -816,24 +701,6 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName2>_pkp</customVariablePageName2> - <customVariablePageValue2>888</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT name</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5 /> - </row> - </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> </row> <row> @@ -844,6 +711,8 @@ <pageId>4</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth /> <pageviewPosition>4</pageviewPosition> <title>Another Product page with multiple categories</title> @@ -851,20 +720,13 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - <customVariables> - <row> - <customVariablePageName3>_pks</customVariablePageName3> - <customVariablePageValue3>SKU VERY nice indeed</customVariablePageValue3> - </row> - <row> - <customVariablePageName4>_pkn</customVariablePageName4> - <customVariablePageValue4>PRODUCT name</customVariablePageValue4> - </row> - <row> - <customVariablePageName5>_pkc</customVariablePageName5> - <customVariablePageValue5>["Multiple Category 1","",0,"Multiple Category 2","Electronics & Cameras","Multiple Category 4","Multiple Category 5","SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttt</customVariablePageValue5> - </row> - </customVariables> + <productViewCategories> + <row>Multiple Category 1</row> + <row>Multiple Category 2</row> + <row>Electronics & Cameras</row> + <row>Multiple Category 4</row> + <row>Multiple Category 5</row> + </productViewCategories> <bandwidth_pretty>0 M</bandwidth_pretty> </row> </actionDetails> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml index 9008439c34..1e63f48102 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsCategory_day.xml @@ -6,8 +6,8 @@ <revenue>2500</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>2</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> <nb_actions>6</nb_actions> <avg_price>1000</avg_price> <avg_quantity>1.5</avg_quantity> @@ -18,8 +18,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -30,8 +30,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -42,8 +42,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -54,8 +54,8 @@ <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> @@ -66,8 +66,8 @@ <revenue>611.22</revenue> <quantity>7</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>55.61</avg_price> <avg_quantity>3.5</avg_quantity> @@ -75,8 +75,8 @@ </row> <row> <label>Category TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -84,8 +84,8 @@ </row> <row> <label>second category</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -104,8 +104,8 @@ </row> <row> <label>Category TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -113,8 +113,8 @@ </row> <row> <label>Product Category not defined</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> @@ -122,8 +122,8 @@ </row> <row> <label>second category</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml index f48390dcdb..d274dfbac8 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsName_day.xml @@ -15,8 +15,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -33,8 +33,8 @@ </row> <row> <label>PRODUCT TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -42,8 +42,8 @@ </row> <row> <label>PRODUCT THREE LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>4</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> @@ -62,8 +62,8 @@ </row> <row> <label>PRODUCT THREE LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> @@ -71,8 +71,8 @@ </row> <row> <label>PRODUCT TWO LEFT in cart</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml index cf37312d3b..5cdc3b1721 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates__Goals.getItemsSku_day.xml @@ -6,8 +6,8 @@ <revenue>1500</revenue> <quantity>1</quantity> <orders>1</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>1500</avg_price> <avg_quantity>1</avg_quantity> @@ -18,8 +18,8 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>8</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> @@ -36,8 +36,8 @@ </row> <row> <label>SKU IN ABANDONED CART TWO</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -56,8 +56,8 @@ </row> <row> <label>SKU IN ABANDONED CART TWO</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>0</avg_price> <avg_quantity>0</avg_quantity> @@ -65,8 +65,8 @@ </row> <row> <label>SKU VERY nice indeed</label> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>2</nb_actions> <avg_price>666</avg_price> <avg_quantity>0</avg_quantity> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml index 477b37f3d5..225d5b0cf4 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsCategory_day.xml @@ -7,53 +7,89 @@ <revenue>2500</revenue> <quantity>3</quantity> <orders>2</orders> + <nb_visits>3</nb_visits> + <nb_uniq_visitors>2</nb_uniq_visitors> + <nb_actions>6</nb_actions> <avg_price>1000</avg_price> <avg_quantity>1.5</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>66.67%</conversion_rate> </row> <row> <label>Multiple Category 1</label> <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>Multiple Category 2</label> <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>Multiple Category 4</label> <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>Multiple Category 5</label> <revenue>1000</revenue> <quantity>2</quantity> <orders>1</orders> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> <avg_price>500</avg_price> <avg_quantity>2</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>Product Category not defined</label> <revenue>611.22</revenue> <quantity>7</quantity> <orders>2</orders> + <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>5</nb_actions> <avg_price>55.61</avg_price> <avg_quantity>3.5</avg_quantity> + <conversion_rate>66.67%</conversion_rate> + </row> + <row> + <label>Category TWO LEFT in cart</label> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>second category</label> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> </result> @@ -67,6 +103,33 @@ <avg_quantity>2</avg_quantity> <conversion_rate>0%</conversion_rate> </row> + <row> + <label>Category TWO LEFT in cart</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Product Category not defined</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>666</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>second category</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> </result> <result date="2011-04-07" /> <result date="2011-04-08" /> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml index 01995b63ea..dbdf7c0517 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsName_day.xml @@ -16,9 +16,12 @@ <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>5</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>PRODUCT name BIS</label> @@ -29,6 +32,24 @@ <avg_quantity>6</avg_quantity> <conversion_rate>0%</conversion_rate> </row> + <row> + <label>PRODUCT TWO LEFT in cart</label> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>PRODUCT THREE LEFT in cart</label> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>4</nb_actions> + <avg_price>666</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> </result> <result date="2011-04-06"> <row> @@ -40,6 +61,24 @@ <avg_quantity>2</avg_quantity> <conversion_rate>0%</conversion_rate> </row> + <row> + <label>PRODUCT THREE LEFT in cart</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>666</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>PRODUCT TWO LEFT in cart</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> </result> <result date="2011-04-07" /> <result date="2011-04-08" /> diff --git a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml index 2c696320d5..c65a555532 100644 --- a/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml +++ b/plugins/Ecommerce/tests/System/expected/test_ecommerceOrderWithItemsmultipleDates_andMultipleWebsites__Goals.getItemsSku_day.xml @@ -7,18 +7,24 @@ <revenue>1500</revenue> <quantity>1</quantity> <orders>1</orders> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> <avg_price>1500</avg_price> <avg_quantity>1</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>100%</conversion_rate> </row> <row> <label>SKU VERY nice indeed</label> <revenue>1011.22</revenue> <quantity>3</quantity> <orders>2</orders> + <nb_visits>3</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>8</nb_actions> <avg_price>255.61</avg_price> <avg_quantity>1.5</avg_quantity> - <conversion_rate>0%</conversion_rate> + <conversion_rate>66.67%</conversion_rate> </row> <row> <label>ANOTHER SKU HERE</label> @@ -29,6 +35,15 @@ <avg_quantity>6</avg_quantity> <conversion_rate>0%</conversion_rate> </row> + <row> + <label>SKU IN ABANDONED CART TWO</label> + <nb_visits>2</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> </result> <result date="2011-04-06"> <row> @@ -40,6 +55,24 @@ <avg_quantity>2</avg_quantity> <conversion_rate>0%</conversion_rate> </row> + <row> + <label>SKU IN ABANDONED CART TWO</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>0</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>SKU VERY nice indeed</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>2</nb_actions> + <avg_price>666</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> </result> <result date="2011-04-07" /> <result date="2011-04-08" /> diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php index e39b088f1d..ecbb8ef74b 100644 --- a/plugins/Goals/API.php +++ b/plugins/Goals/API.php @@ -15,8 +15,10 @@ use Piwik\CacheId; use Piwik\Cache as PiwikCache; use Piwik\Common; use Piwik\DataTable; +use Piwik\DbHelper; use Piwik\Metrics; use Piwik\Piwik; +use Piwik\Plugin\Manager; use Piwik\Plugins\API\DataTable\MergeDataTables; use Piwik\Plugins\CoreHome\Columns\Metrics\ConversionRate; use Piwik\Plugins\Goals\Columns\Metrics\AverageOrderRevenue; @@ -329,11 +331,29 @@ class API extends \Piwik\Plugin\API $archive = Archive::build($idSite, $period, $date, $segment); $dataTable = $archive->getDataTable($recordNameFinal); - $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment); + // Before Matomo 4.0.0 ecommerce views were tracked in custom variables + // So if Matomo was installed before try to fetch the views from custom variables and enrich the report + if (version_compare(DbHelper::getInstallVersion(),'4.0.0-b2', '<')) { + $this->enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment); + } - // First rename the avg_price_viewed column - $renameColumn = array(self::AVG_PRICE_VIEWED => 'avg_price'); - $dataTable->filter('ReplaceColumnNames', array($renameColumn)); + // use average ecommerce view price if no cart price is available + $dataTable->filter(function(DataTable $table){ + foreach ($table->getRowsWithoutSummaryRow() as $row) { + if (!$row->getColumn('avg_price') && !$row->getColumn(Metrics::INDEX_ECOMMERCE_ITEM_PRICE)) { + $row->renameColumn(self::AVG_PRICE_VIEWED, 'avg_price'); + } + $row->deleteColumn(self::AVG_PRICE_VIEWED); + } + }); + + $reportToNotDefinedString = array( + 'Goals_ItemsSku' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductSKU')), // Note: this should never happen + 'Goals_ItemsName' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductName')), + 'Goals_ItemsCategory' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductCategory')) + ); + $notDefinedStringPretty = $reportToNotDefinedString[$recordName]; + $this->renameNotDefinedRow($dataTable, $notDefinedStringPretty); $dataTable->queueFilter('ReplaceColumnNames'); $dataTable->queueFilter('ReplaceSummaryRowLabel'); @@ -365,6 +385,11 @@ class API extends \Piwik\Plugin\API protected function enrichItemsDataTableWithItemsViewMetrics($dataTable, $idSite, $period, $date, $segment, $idSubtable) { + if (in_array('nb_visits', $dataTable->getColumns())) { + // skip if table already contains visits + return; + } + $ecommerceViews = \Piwik\Plugins\CustomVariables\API::getInstance()->getCustomVariablesValuesFromNameId($idSite, $period, $date, $idSubtable, $segment, $_leavePriceViewedColumn = true); // For Product names and SKU reports, and for Category report @@ -746,6 +771,10 @@ class API extends \Piwik\Plugin\API */ protected function enrichItemsTableWithViewMetrics($dataTable, $recordName, $idSite, $period, $date, $segment) { + if (!Manager::getInstance()->isPluginActivated('CustomVariables')) { + return; + } + // Enrich the datatable with Product/Categories views, and conversion rates $customVariables = \Piwik\Plugins\CustomVariables\API::getInstance()->getCustomVariables($idSite, $period, $date, $segment, $expanded = false, $_leavePiwikCoreVariables = true); @@ -754,12 +783,6 @@ class API extends \Piwik\Plugin\API 'Goals_ItemsName' => '_pkn', 'Goals_ItemsCategory' => '_pkc', ); - $reportToNotDefinedString = array( - 'Goals_ItemsSku' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductSKU')), // Note: this should never happen - 'Goals_ItemsName' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductName')), - 'Goals_ItemsCategory' => Piwik::translate('General_NotDefined', Piwik::translate('Goals_ProductCategory')) - ); - $notDefinedStringPretty = $reportToNotDefinedString[$recordName]; $customVarNameToLookFor = $mapping[$recordName]; // Handle case where date=last30&period=day @@ -782,7 +805,6 @@ class API extends \Piwik\Plugin\API } $dataTable->addTable($dataTableForDate, $key); } - $this->renameNotDefinedRow($dataTableForDate, $notDefinedStringPretty); } } elseif ($customVariables instanceof DataTable) { $row = $customVariables->getRowFromLabel($customVarNameToLookFor); @@ -790,7 +812,6 @@ class API extends \Piwik\Plugin\API $idSubtable = $row->getIdSubDataTable(); $this->enrichItemsDataTableWithItemsViewMetrics($dataTable, $idSite, $period, $date, $segment, $idSubtable); } - $this->renameNotDefinedRow($dataTable, $notDefinedStringPretty); } } diff --git a/plugins/Goals/Archiver.php b/plugins/Goals/Archiver.php index 56e8ae66aa..b0b61fbead 100644 --- a/plugins/Goals/Archiver.php +++ b/plugins/Goals/Archiver.php @@ -72,17 +72,26 @@ class Archiver extends \Piwik\Plugin\Archiver array(121, 364), array(364) ); - protected $dimensionRecord = array( + protected $dimensionRecord = [ self::SKU_FIELD => self::ITEMS_SKU_RECORD_NAME, self::NAME_FIELD => self::ITEMS_NAME_RECORD_NAME, self::CATEGORY_FIELD => self::ITEMS_CATEGORY_RECORD_NAME - ); + ]; + protected $actionMapping = [ + self::SKU_FIELD => 'idaction_product_sku', + self::NAME_FIELD => 'idaction_product_name', + self::CATEGORY_FIELD => 'idaction_product_cat', + self::CATEGORY2_FIELD => 'idaction_product_cat2', + self::CATEGORY3_FIELD => 'idaction_product_cat3', + self::CATEGORY4_FIELD => 'idaction_product_cat4', + self::CATEGORY5_FIELD => 'idaction_product_cat5', + ]; /** * Array containing one DataArray for each Ecommerce items dimension (name/sku/category abandoned carts and orders) - * @var array + * @var DataArray[][] */ - protected $itemReports = array(); + protected $itemReports = []; public function aggregateDayReport() { @@ -225,15 +234,34 @@ class Archiver extends \Piwik\Plugin\Archiver $this->initItemReports(); foreach ($this->getItemsDimensions() as $dimension) { $query = $this->getLogAggregator()->queryEcommerceItems($dimension); - if ($query == false) { - continue; + if ($query !== false) { + $this->aggregateFromEcommerceItems($query, $dimension); + } + + $query = $this->queryItemViewsForDimension($dimension); + if ($query !== false) { + $this->aggregateFromEcommerceViews($query, $dimension); } - $this->aggregateFromEcommerceItems($query, $dimension); } $this->insertItemReports(); return true; } + protected function queryItemViewsForDimension($dimension) + { + $column = $this->actionMapping[$dimension]; + $where = "log_link_visit_action.$column is not null"; + + return $this->getLogAggregator()->queryActionsByDimension( + ['label' => 'log_action1.name'], + $where, + ['AVG(log_link_visit_action.product_price) AS `avg_price_viewed`'], + false, + null, + [$column] + ); + } + protected function initItemReports() { foreach ($this->getEcommerceIdGoals() as $ecommerceType) { @@ -245,7 +273,6 @@ class Archiver extends \Piwik\Plugin\Archiver protected function insertItemReports() { - /** @var DataArray $array */ foreach ($this->itemReports as $dimension => $itemAggregatesByType) { foreach ($itemAggregatesByType as $ecommerceType => $itemAggregate) { $recordName = $this->dimensionRecord[$dimension]; @@ -299,22 +326,37 @@ class Archiver extends \Piwik\Plugin\Archiver } } - protected function cleanupRowGetLabel(&$row, $currentField) + protected function aggregateFromEcommerceViews($query, $dimension) { - $label = $row['label']; - if (empty($label)) { - // An empty additional category -> skip this iteration - if ($this->isItemExtraCategory($currentField)) { - return false; + while ($row = $query->fetch()) { + + $label = $this->getRowLabel($row, $dimension); + if ($label === false) { + continue; // ignore empty additional categories } - $label = "Value not defined"; - // Product Name/Category not defined" - if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables')) { - $label = \Piwik\Plugins\CustomVariables\Archiver::LABEL_CUSTOM_VALUE_NOT_DEFINED; + + // Aggregate extra categories in the Item categories array + if ($this->isItemExtraCategory($dimension)) { + $array = $this->itemReports[self::CATEGORY_FIELD]; + } else { + $array = $this->itemReports[$dimension]; + } + + unset($row['label']); + $row['avg_price_viewed'] = round($row['avg_price_viewed'], GoalManager::REVENUE_PRECISION); + + // add views to all types + foreach ($array as $ecommerceType => $dataArray) { + $dataArray->sumMetrics($label, $row); } } + } + + protected function cleanupRowGetLabel(&$row, $currentField) + { + $label = $this->getRowLabel($row, $currentField); - if ($row['ecommerceType'] == GoalManager::IDGOAL_CART) { + if (isset($row['ecommerceType']) && $row['ecommerceType'] == GoalManager::IDGOAL_CART) { // abandoned carts are the number of visits with an abandoned cart $row[Metrics::INDEX_ECOMMERCE_ORDERS] = $row[Metrics::INDEX_NB_VISITS]; } @@ -327,6 +369,23 @@ class Archiver extends \Piwik\Plugin\Archiver return $label; } + protected function getRowLabel(&$row, $currentField) + { + $label = $row['label']; + if (empty($label)) { + // An empty additional category -> skip this iteration + if ($this->isItemExtraCategory($currentField)) { + return false; + } + $label = "Value not defined"; + // Product Name/Category not defined" + if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables')) { + $label = \Piwik\Plugins\CustomVariables\Archiver::LABEL_CUSTOM_VALUE_NOT_DEFINED; + } + } + return $label; + } + protected function roundColumnValues(&$row) { $columnsToRound = array( diff --git a/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png b/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png index 186475ee8c..9edd6ce932 100644 --- a/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png +++ b/plugins/PagePerformance/tests/UI/expected-screenshots/PagePerformance_visualizations.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:709294423a8066d7040176492792bf8836d47e493e4588818ae7c5531cbe0c79 -size 40138 +oid sha256:3bcfe4d57238c68e1cede32e761ab1467979777e4605c4d4a7b407d21d6e8edc +size 40312 diff --git a/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml index 0a79714081..7ef63fc612 100644 --- a/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml +++ b/plugins/PrivacyManager/tests/System/expected/test___PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml @@ -101,6 +101,34 @@ <default_value /> </row> <row> + <column_name>idaction_product_cat</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat2</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat3</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat4</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat5</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_name</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_sku</column_name> + <default_value /> + </row> + <row> <column_name>idaction_url</column_name> <default_value /> </row> @@ -117,6 +145,10 @@ <default_value /> </row> <row> + <column_name>product_price</column_name> + <default_value /> + </row> + <row> <column_name>search_cat</column_name> <default_value /> </row> diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php index cb9e24c543..064179e7af 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIPAndEcommerce.php @@ -20,6 +20,11 @@ class ManyVisitsWithGeoIPAndEcommerce extends ManyVisitsWithGeoIP */ protected function trackVisit(\MatomoTracker $t, $fixtureCounter, $visitorCounter, $doBulk, array $params) { + // Add some ecommerce views + if (($visitorCounter % 3) == 1) { + $t->setEcommerceView('Custom SKU', 'MyName', ['Category1', 'Category2', 'Category3', 'Category' . $visitorCounter], 17.4); + } + parent::trackVisit($t, $fixtureCounter, $visitorCounter, $doBulk, $params); // Add a few ecommerce orders diff --git a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php index 8c5f945d0e..c5fe09b667 100644 --- a/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php +++ b/tests/PHPUnit/Fixtures/TwoSitesEcommerceOrderWithItems.php @@ -66,10 +66,6 @@ class TwoSitesEcommerceOrderWithItems extends Fixture $t->setEcommerceView('SKU2', 'PRODUCT name', $category, $price); $t->setCustomVariable(5, 'VisitorType', 'NewLoggedOut', 'visit'); $t->setCustomVariable(4, 'ValueIsZero', '0', 'visit'); - self::assertEquals(array('_pks', 'SKU2'), $t->getCustomVariable(3, 'page')); - self::assertEquals(array('_pkn', 'PRODUCT name'), $t->getCustomVariable(4, 'page')); - self::assertEquals(array('_pkc', $category), $t->getCustomVariable(5, 'page')); - self::assertEquals(array('_pkp', $price), $t->getCustomVariable(2, 'page')); self::assertEquals(array('VisitorType', 'NewLoggedOut'), $t->getCustomVariable(5, 'visit')); // this is also a goal conversion (visitConvertedGoalId==1) @@ -85,7 +81,7 @@ class TwoSitesEcommerceOrderWithItems extends Fixture self::checkResponse($t->doTrackPageView('Another Product page with no category')); $t->setForceVisitDateTime(Date::factory($this->dateTime)->addHour(0.2)->getDatetime()); - $t->setEcommerceView($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $categories = array('Multiple Category 1', '', 0, 'Multiple Category 2', 'Electronics & Cameras', 'Multiple Category 4', 'Multiple Category 5', 'SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttttttttuuuu!')); + $t->setEcommerceView($sku = 'SKU VERY nice indeed', $name = 'PRODUCT name', $categories = ['Multiple Category 1', '', 0, 'Multiple Category 2', 'Electronics & Cameras', 'Multiple Category 4', 'Multiple Category 5', 'SHOULD NOT BE REPORTEDSSSSSSSSSSSSSSssssssssssssssssssssssssssstttttttttttttttttttttttuuuu!']); self::checkResponse($t->doTrackPageView('Another Product page with multiple categories')); // VISIT NO 2 diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml index e1ca8909f2..f034959a21 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml @@ -11,7 +11,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>49</pageId> @@ -164,7 +164,7 @@ <type>action</type> <url>http://piwik.org/changelog/</url> <pageTitle>Changelog Archive - Analytics - Piwik</pageTitle> - <pageIdAction>44</pageIdAction> + <pageIdAction>48</pageIdAction> <pageId>40</pageId> @@ -204,7 +204,7 @@ <type>action</type> <url>http://piwik.org/contact/</url> <pageTitle>Contact the Piwik team - Analytics - Piwik</pageTitle> - <pageIdAction>55</pageIdAction> + <pageIdAction>59</pageIdAction> <pageId>48</pageId> @@ -323,7 +323,7 @@ <type>action</type> <url>http://demo.piwik.org/index.php?module=CoreHome&action=index&date=yesterday&period=day&idSite=7</url> <pageTitle>demo.piwik.org/Piwik Forums - Piwik › Web Analytics Reports</pageTitle> - <pageIdAction>53</pageIdAction> + <pageIdAction>57</pageIdAction> <pageId>47</pageId> @@ -486,7 +486,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>44</pageId> @@ -526,7 +526,7 @@ <type>action</type> <url>http://piwik.org/what-is-piwisk/</url> <pageTitle>What is Piwik? - Analytics - Piwik</pageTitle> - <pageIdAction>51</pageIdAction> + <pageIdAction>55</pageIdAction> <pageId>46</pageId> @@ -666,7 +666,7 @@ <type>outlink</type> <url>http://demo.piwik.org/</url> <pageTitle /> - <pageIdAction>49</pageIdAction> + <pageIdAction>53</pageIdAction> <pageId>45</pageId> @@ -806,7 +806,7 @@ <type>action</type> <url>http://piwik.org/blog/2012/10/integrate-piwik-into-your-rails-application/</url> <pageTitle>Integrate Piwik into your Rails Application - Analytics - Piwik</pageTitle> - <pageIdAction>48</pageIdAction> + <pageIdAction>52</pageIdAction> <pageId>43</pageId> @@ -969,7 +969,7 @@ <type>action</type> <url>http://piwik.org/log-analytics/</url> <pageTitle>Log Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>42</pageIdAction> + <pageIdAction>46</pageIdAction> <pageId>42</pageId> @@ -1120,7 +1120,7 @@ <type>action</type> <url>http://piwik.org/blog/2014/03/piwik-2-1-massive-performance-reliability-improvements/</url> <pageTitle>Piwik 2.1 — Massive Performance and Reliability Improvements - Analytics - Piwik</pageTitle> - <pageIdAction>46</pageIdAction> + <pageIdAction>50</pageIdAction> <pageId>41</pageId> @@ -1265,7 +1265,7 @@ <type>action</type> <url>http://piwik.org/log-analytics/</url> <pageTitle>Log Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>42</pageIdAction> + <pageIdAction>46</pageIdAction> <pageId>39</pageId> @@ -1430,7 +1430,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>35</pageId> @@ -1470,7 +1470,7 @@ <type>action</type> <url>http://piwik.org/download/</url> <pageTitle>Download - Analytics - Piwik</pageTitle> - <pageIdAction>39</pageIdAction> + <pageIdAction>43</pageIdAction> <pageId>37</pageId> @@ -1495,7 +1495,7 @@ <type>download</type> <url>http://builds.piwik.org/latest.zip</url> <pageTitle /> - <pageIdAction>40</pageIdAction> + <pageIdAction>44</pageIdAction> <pageId>38</pageId> @@ -1627,7 +1627,7 @@ <type>action</type> <url>http://piwik.org/docs/installation/</url> <pageTitle>Hello Installing Piwik - Analytics - Piwik</pageTitle> - <pageIdAction>37</pageIdAction> + <pageIdAction>41</pageIdAction> <pageId>36</pageId> @@ -1784,7 +1784,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>34</pageId> @@ -2296,7 +2296,7 @@ <type>action</type> <url>http://piwik.net/view/my/file.html</url> <pageTitle /> - <pageIdAction>65</pageIdAction> + <pageIdAction>69</pageIdAction> <pageId>86</pageId> @@ -2426,7 +2426,7 @@ <type>action</type> <url>http://www.notdatefiltered.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>76</pageIdAction> + <pageIdAction>80</pageIdAction> <pageId>99</pageId> @@ -2556,7 +2556,7 @@ <type>action</type> <url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url> <pageTitle>302/URL = http%3A%2F%2Fpiwik.net%2FCitrix%2FXenApp%2FWan%2Fauth%2Flogin.jsp</pageTitle> - <pageIdAction>63</pageIdAction> + <pageIdAction>67</pageIdAction> <pageId>84</pageId> @@ -2596,7 +2596,7 @@ <type>action</type> <url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url> <pageTitle /> - <pageIdAction>64</pageIdAction> + <pageIdAction>68</pageIdAction> <pageId>85</pageId> @@ -2711,7 +2711,7 @@ <type>action</type> <url>http://hello.example.com/hello/world/6,681965</url> <pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle> - <pageIdAction>60</pageIdAction> + <pageIdAction>64</pageIdAction> <pageId>93</pageId> @@ -2744,7 +2744,7 @@ <type>action</type> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <pageTitle /> - <pageIdAction>61</pageIdAction> + <pageIdAction>65</pageIdAction> <pageId>83</pageId> @@ -2784,7 +2784,7 @@ <type>action</type> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <pageTitle /> - <pageIdAction>61</pageIdAction> + <pageIdAction>65</pageIdAction> <pageId>94</pageId> @@ -2911,7 +2911,7 @@ <type>action</type> <url>http://xzy.example.com/Products/theProduct</url> <pageTitle /> - <pageIdAction>56</pageIdAction> + <pageIdAction>60</pageIdAction> <pageId>80</pageId> @@ -2951,7 +2951,7 @@ <type>action</type> <url>http://xzy.example.com/Products/theProduct</url> <pageTitle /> - <pageIdAction>56</pageIdAction> + <pageIdAction>60</pageIdAction> <pageId>91</pageId> @@ -3078,7 +3078,7 @@ <type>action</type> <url>http://example.hello.com/Topic/hw43061</url> <pageTitle>301/URL = http%3A%2F%2Fexample.hello.com%2FTopic%2Fhw43061</pageTitle> - <pageIdAction>58</pageIdAction> + <pageIdAction>62</pageIdAction> <pageId>81</pageId> @@ -3118,7 +3118,7 @@ <type>action</type> <url>http://example.hello.com/Topic/hw43061</url> <pageTitle>301/URL = http%3A%2F%2Fexample.hello.com%2FTopic%2Fhw43061</pageTitle> - <pageIdAction>58</pageIdAction> + <pageIdAction>62</pageIdAction> <pageId>92</pageId> @@ -3245,7 +3245,7 @@ <type>action</type> <url>http://hello.example.com/hello/world/6,681965</url> <pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle> - <pageIdAction>60</pageIdAction> + <pageIdAction>64</pageIdAction> <pageId>82</pageId> @@ -3379,6 +3379,8 @@ <pageId>30</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU2</productViewSku> <bandwidth>43</bandwidth> <pageviewPosition>1</pageviewPosition> <title>incredible title!</title> @@ -3386,6 +3388,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName3>_pks</customVariablePageName3> @@ -3530,7 +3535,7 @@ <type>action</type> <url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url> <pageTitle>Piwik Forums</pageTitle> - <pageIdAction>31</pageIdAction> + <pageIdAction>34</pageIdAction> <pageId>31</pageId> @@ -3815,7 +3820,7 @@ <type>action</type> <url>http://piwik.net/api/fútbol-user-agent</url> <pageTitle /> - <pageIdAction>71</pageIdAction> + <pageIdAction>75</pageIdAction> <pageId>90</pageId> @@ -3944,7 +3949,7 @@ <row> <type>event</type> <url>http://piwik.net/shqshne4jdp4b6.cloudfront.net/cfx/st​?key=value</url> - <pageIdAction>66</pageIdAction> + <pageIdAction>70</pageIdAction> <pageId>88</pageId> @@ -4061,7 +4066,7 @@ <row> <type>event</type> <url>http://piwik.net/shqshne4jdp4b6.cloudfront.net/cfx/st​?key=value</url> - <pageIdAction>66</pageIdAction> + <pageIdAction>70</pageIdAction> <pageId>87</pageId> @@ -6469,7 +6474,7 @@ <type>action</type> <url>http://included3.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>72</pageIdAction> + <pageIdAction>76</pageIdAction> <pageId>95</pageId> @@ -6599,7 +6604,7 @@ <type>action</type> <url>http://included1.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>74</pageIdAction> + <pageIdAction>78</pageIdAction> <pageId>97</pageId> @@ -7769,7 +7774,7 @@ <type>action</type> <url>http://www.included4.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>73</pageIdAction> + <pageIdAction>77</pageIdAction> <pageId>96</pageId> @@ -7899,7 +7904,7 @@ <type>action</type> <url>http://www.included2.com/blog/category/meta/</url> <pageTitle /> - <pageIdAction>75</pageIdAction> + <pageIdAction>79</pageIdAction> <pageId>98</pageId> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml index 0a79714081..7ef63fc612 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml @@ -101,6 +101,34 @@ <default_value /> </row> <row> + <column_name>idaction_product_cat</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat2</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat3</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat4</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat5</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_name</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_sku</column_name> + <default_value /> + </row> + <row> <column_name>idaction_url</column_name> <default_value /> </row> @@ -117,6 +145,10 @@ <default_value /> </row> <row> + <column_name>product_price</column_name> + <default_value /> + </row> + <row> <column_name>search_cat</column_name> <default_value /> </row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml index 69b7323420..3fbc0dcaa2 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml @@ -11,7 +11,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>69</pageId> @@ -149,7 +149,7 @@ <type>action</type> <url>http://piwik.org/changelog/</url> <pageTitle>Changelog Archive - Analytics - Piwik</pageTitle> - <pageIdAction>44</pageIdAction> + <pageIdAction>48</pageIdAction> <pageId>60</pageId> @@ -174,7 +174,7 @@ <type>action</type> <url>http://piwik.org/contact/</url> <pageTitle>Contact the Piwik team - Analytics - Piwik</pageTitle> - <pageIdAction>55</pageIdAction> + <pageIdAction>59</pageIdAction> <pageId>68</pageId> @@ -293,7 +293,7 @@ <type>action</type> <url>http://demo.piwik.org/index.php?module=CoreHome&action=index&date=yesterday&period=day&idSite=7</url> <pageTitle>demo.piwik.org/Piwik Forums - Piwik › Web Analytics Reports</pageTitle> - <pageIdAction>53</pageIdAction> + <pageIdAction>57</pageIdAction> <pageId>67</pageId> @@ -441,7 +441,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>64</pageId> @@ -466,7 +466,7 @@ <type>action</type> <url>http://piwik.org/what-is-piwisk/</url> <pageTitle>What is Piwik? - Analytics - Piwik</pageTitle> - <pageIdAction>51</pageIdAction> + <pageIdAction>55</pageIdAction> <pageId>66</pageId> @@ -606,7 +606,7 @@ <type>outlink</type> <url>http://demo.piwik.org/</url> <pageTitle /> - <pageIdAction>49</pageIdAction> + <pageIdAction>53</pageIdAction> <pageId>65</pageId> @@ -746,7 +746,7 @@ <type>action</type> <url>http://piwik.org/blog/2012/10/integrate-piwik-into-your-rails-application/</url> <pageTitle>Integrate Piwik into your Rails Application - Analytics - Piwik</pageTitle> - <pageIdAction>48</pageIdAction> + <pageIdAction>52</pageIdAction> <pageId>63</pageId> @@ -894,7 +894,7 @@ <type>action</type> <url>http://piwik.org/log-analytics/</url> <pageTitle>Log Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>42</pageIdAction> + <pageIdAction>46</pageIdAction> <pageId>62</pageId> @@ -1030,7 +1030,7 @@ <type>action</type> <url>http://piwik.org/blog/2014/03/piwik-2-1-massive-performance-reliability-improvements/</url> <pageTitle>Piwik 2.1 — Massive Performance and Reliability Improvements - Analytics - Piwik</pageTitle> - <pageIdAction>46</pageIdAction> + <pageIdAction>50</pageIdAction> <pageId>61</pageId> @@ -1160,7 +1160,7 @@ <type>action</type> <url>http://piwik.org/log-analytics/</url> <pageTitle>Log Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>42</pageIdAction> + <pageIdAction>46</pageIdAction> <pageId>59</pageId> @@ -1310,7 +1310,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>55</pageId> @@ -1335,7 +1335,7 @@ <type>action</type> <url>http://piwik.org/download/</url> <pageTitle>Download - Analytics - Piwik</pageTitle> - <pageIdAction>39</pageIdAction> + <pageIdAction>43</pageIdAction> <pageId>57</pageId> @@ -1360,7 +1360,7 @@ <type>download</type> <url>http://builds.piwik.org/latest.zip</url> <pageTitle /> - <pageIdAction>40</pageIdAction> + <pageIdAction>44</pageIdAction> <pageId>58</pageId> @@ -1492,7 +1492,7 @@ <type>action</type> <url>http://piwik.org/docs/installation/</url> <pageTitle>Hello Installing Piwik - Analytics - Piwik</pageTitle> - <pageIdAction>37</pageIdAction> + <pageIdAction>41</pageIdAction> <pageId>56</pageId> @@ -1634,7 +1634,7 @@ <type>action</type> <url>http://piwik.org/</url> <pageTitle>Liberate Web Analytics - Analytics - Piwik</pageTitle> - <pageIdAction>35</pageIdAction> + <pageIdAction>39</pageIdAction> <pageId>54</pageId> @@ -1780,6 +1780,8 @@ <pageId>50</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU2</productViewSku> <bandwidth>43</bandwidth> <pageviewPosition>1</pageviewPosition> <title>incredible title!</title> @@ -1787,6 +1789,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName3>_pks</customVariablePageName3> @@ -1916,7 +1921,7 @@ <type>action</type> <url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url> <pageTitle>Piwik Forums</pageTitle> - <pageIdAction>31</pageIdAction> + <pageIdAction>34</pageIdAction> <pageId>51</pageId> @@ -2069,6 +2074,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName5>_pkc</customVariablePageName5> @@ -2085,6 +2093,8 @@ <pageId>52</pageId> + <productViewName>PRODUCT name</productViewName> + <productViewSku>SKU VERY nice indeed</productViewSku> <bandwidth>43</bandwidth> <timeSpent>0</timeSpent> <timeSpentPretty>0s</timeSpentPretty> @@ -2121,6 +2131,9 @@ <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + <productViewCategories> + <row>Electronics & Cameras</row> + </productViewCategories> <customVariables> <row> <customVariablePageName5>_pkc</customVariablePageName5> diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml index 0a79714081..7ef63fc612 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml @@ -101,6 +101,34 @@ <default_value /> </row> <row> + <column_name>idaction_product_cat</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat2</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat3</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat4</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat5</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_name</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_sku</column_name> + <default_value /> + </row> + <row> <column_name>idaction_url</column_name> <default_value /> </row> @@ -117,6 +145,10 @@ <default_value /> </row> <row> + <column_name>product_price</column_name> + <default_value /> + </row> + <row> <column_name>search_cat</column_name> <default_value /> </row> diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml index 7d0c3a4557..f99d03751a 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml @@ -742,6 +742,12 @@ <segment>productPrice</segment> </row> <row> + <type>metric</type> + <category>Ecommerce</category> + <name>Viewed Product Price</name> + <segment>productViewPrice</segment> + </row> + <row> <type>dimension</type> <category>Ecommerce</category> <name>Product Category</name> @@ -766,4 +772,29 @@ <name>Product SKU</name> <segment>productSku</segment> </row> + <row> + <type>dimension</type> + <category>Ecommerce</category> + <name>Viewed Product Category</name> + <segment>productViewCategory</segment> + <unionOfSegments> + <row>productViewCategory1</row> + <row>productViewCategory2</row> + <row>productViewCategory3</row> + <row>productViewCategory4</row> + <row>productViewCategory5</row> + </unionOfSegments> + </row> + <row> + <type>dimension</type> + <category>Ecommerce</category> + <name>Viewed Product Name</name> + <segment>productViewName</segment> + </row> + <row> + <type>dimension</type> + <category>Ecommerce</category> + <name>Viewed Product SKU</name> + <segment>productViewSku</segment> + </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml index 0a79714081..7ef63fc612 100644 --- a/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml +++ b/tests/PHPUnit/System/expected/test_noVisit_PeriodIsLast__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml @@ -101,6 +101,34 @@ <default_value /> </row> <row> + <column_name>idaction_product_cat</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat2</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat3</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat4</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat5</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_name</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_sku</column_name> + <default_value /> + </row> + <row> <column_name>idaction_url</column_name> <default_value /> </row> @@ -117,6 +145,10 @@ <default_value /> </row> <row> + <column_name>product_price</column_name> + <default_value /> + </row> + <row> <column_name>search_cat</column_name> <default_value /> </row> diff --git a/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml b/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml index 0a79714081..7ef63fc612 100644 --- a/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml +++ b/tests/PHPUnit/System/expected/test_noVisit__PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize.xml @@ -101,6 +101,34 @@ <default_value /> </row> <row> + <column_name>idaction_product_cat</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat2</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat3</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat4</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_cat5</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_name</column_name> + <default_value /> + </row> + <row> + <column_name>idaction_product_sku</column_name> + <default_value /> + </row> + <row> <column_name>idaction_url</column_name> <default_value /> </row> @@ -117,6 +145,10 @@ <default_value /> </row> <row> + <column_name>product_price</column_name> + <default_value /> + </row> + <row> <column_name>search_cat</column_name> <default_value /> </row> diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml index a8d3e17e53..defda4613c 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsCategory_day.xml @@ -2,19 +2,46 @@ <result> <row> <label>Books Cat #0</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #1</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #2</label> + <nb_visits>5</nb_visits> <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #3</label> <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> <row> - <label>Others</label> - <nb_uniq_visitors>20</nb_uniq_visitors> - <nb_visits>20</nb_visits> - <nb_actions>20</nb_actions> - <avg_price>30</avg_price> + <label>Books Cat #4</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml index 95cb364b56..563eaeada9 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsName_day.xml @@ -2,19 +2,226 @@ <result> <row> <label>Book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book2</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book3</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book19</label> + <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book20</label> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> <row> - <label>Others</label> - <nb_uniq_visitors>24</nb_uniq_visitors> - <nb_visits>24</nb_visits> - <nb_actions>24</nb_actions> - <avg_price>180</avg_price> + <label>Book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml index c234bed59e..4f702e147d 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting__Goals.getItemsSku_day.xml @@ -1,2 +1,228 @@ <?xml version="1.0" encoding="utf-8" ?> -<result />
\ No newline at end of file +<result> + <row> + <label>id_book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book2</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book3</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book19</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book20</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml index 6b91011da3..2faabf690a 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsCategory_day.xml @@ -1,24 +1,53 @@ <?xml version="1.0" encoding="utf-8" ?> <result> <row> - <label>Others</label> - <nb_uniq_visitors>20</nb_uniq_visitors> - <nb_visits>20</nb_visits> - <nb_actions>20</nb_actions> - <avg_price>30</avg_price> + <label>Books Cat #0</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> - <is_summary>1</is_summary> - <Ecommerce_ProductCategory>Others</Ecommerce_ProductCategory> + <Ecommerce_ProductCategory>Books Cat #0</Ecommerce_ProductCategory> </row> <row> - <label>Books Cat #0</label> + <label>Books Cat #1</label> + <nb_visits>5</nb_visits> <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductCategory>Books Cat #1</Ecommerce_ProductCategory> + </row> + <row> + <label>Books Cat #2</label> <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> - <Ecommerce_ProductCategory>Books Cat #0</Ecommerce_ProductCategory> + <Ecommerce_ProductCategory>Books Cat #2</Ecommerce_ProductCategory> + </row> + <row> + <label>Books Cat #3</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductCategory>Books Cat #3</Ecommerce_ProductCategory> + </row> + <row> + <label>Books Cat #4</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductCategory>Books Cat #4</Ecommerce_ProductCategory> </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml index 3f35409fb0..9600fa8391 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsName_day.xml @@ -1,24 +1,253 @@ <?xml version="1.0" encoding="utf-8" ?> <result> <row> - <label>Others</label> - <nb_uniq_visitors>24</nb_uniq_visitors> - <nb_visits>24</nb_visits> - <nb_actions>24</nb_actions> - <avg_price>180</avg_price> + <label>Book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> - <is_summary>1</is_summary> - <Ecommerce_ProductName>Others</Ecommerce_ProductName> + <Ecommerce_ProductName>Book0</Ecommerce_ProductName> </row> <row> - <label>Book0</label> + <label>Book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book1</Ecommerce_ProductName> + </row> + <row> + <label>Book2</label> + <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book2</Ecommerce_ProductName> + </row> + <row> + <label>Book3</label> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> - <Ecommerce_ProductName>Book0</Ecommerce_ProductName> + <Ecommerce_ProductName>Book3</Ecommerce_ProductName> + </row> + <row> + <label>Book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book4</Ecommerce_ProductName> + </row> + <row> + <label>Book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book5</Ecommerce_ProductName> + </row> + <row> + <label>Book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book6</Ecommerce_ProductName> + </row> + <row> + <label>Book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book7</Ecommerce_ProductName> + </row> + <row> + <label>Book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book8</Ecommerce_ProductName> + </row> + <row> + <label>Book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book9</Ecommerce_ProductName> + </row> + <row> + <label>Book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book10</Ecommerce_ProductName> + </row> + <row> + <label>Book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book11</Ecommerce_ProductName> + </row> + <row> + <label>Book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book12</Ecommerce_ProductName> + </row> + <row> + <label>Book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book13</Ecommerce_ProductName> + </row> + <row> + <label>Book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book14</Ecommerce_ProductName> + </row> + <row> + <label>Book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book15</Ecommerce_ProductName> + </row> + <row> + <label>Book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book16</Ecommerce_ProductName> + </row> + <row> + <label>Book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book17</Ecommerce_ProductName> + </row> + <row> + <label>Book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book18</Ecommerce_ProductName> + </row> + <row> + <label>Book19</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book19</Ecommerce_ProductName> + </row> + <row> + <label>Book20</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book20</Ecommerce_ProductName> + </row> + <row> + <label>Book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book21</Ecommerce_ProductName> + </row> + <row> + <label>Book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book22</Ecommerce_ProductName> + </row> + <row> + <label>Book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book23</Ecommerce_ProductName> + </row> + <row> + <label>Book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductName>Book24</Ecommerce_ProductName> </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml index c234bed59e..d358bde25c 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Goals.getItemsSku_day.xml @@ -1,2 +1,253 @@ <?xml version="1.0" encoding="utf-8" ?> -<result />
\ No newline at end of file +<result> + <row> + <label>id_book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book0</Ecommerce_ProductSku> + </row> + <row> + <label>id_book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book1</Ecommerce_ProductSku> + </row> + <row> + <label>id_book2</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book2</Ecommerce_ProductSku> + </row> + <row> + <label>id_book3</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book3</Ecommerce_ProductSku> + </row> + <row> + <label>id_book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book4</Ecommerce_ProductSku> + </row> + <row> + <label>id_book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book5</Ecommerce_ProductSku> + </row> + <row> + <label>id_book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book6</Ecommerce_ProductSku> + </row> + <row> + <label>id_book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book7</Ecommerce_ProductSku> + </row> + <row> + <label>id_book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book8</Ecommerce_ProductSku> + </row> + <row> + <label>id_book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book9</Ecommerce_ProductSku> + </row> + <row> + <label>id_book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book10</Ecommerce_ProductSku> + </row> + <row> + <label>id_book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book11</Ecommerce_ProductSku> + </row> + <row> + <label>id_book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book12</Ecommerce_ProductSku> + </row> + <row> + <label>id_book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book13</Ecommerce_ProductSku> + </row> + <row> + <label>id_book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book14</Ecommerce_ProductSku> + </row> + <row> + <label>id_book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book15</Ecommerce_ProductSku> + </row> + <row> + <label>id_book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book16</Ecommerce_ProductSku> + </row> + <row> + <label>id_book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book17</Ecommerce_ProductSku> + </row> + <row> + <label>id_book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book18</Ecommerce_ProductSku> + </row> + <row> + <label>id_book19</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book19</Ecommerce_ProductSku> + </row> + <row> + <label>id_book20</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book20</Ecommerce_ProductSku> + </row> + <row> + <label>id_book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book21</Ecommerce_ProductSku> + </row> + <row> + <label>id_book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book22</Ecommerce_ProductSku> + </row> + <row> + <label>id_book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book23</Ecommerce_ProductSku> + </row> + <row> + <label>id_book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + <Ecommerce_ProductSku>id_book24</Ecommerce_ProductSku> + </row> +</result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml index a8d3e17e53..defda4613c 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsCategory_day.xml @@ -2,19 +2,46 @@ <result> <row> <label>Books Cat #0</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #1</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #2</label> + <nb_visits>5</nb_visits> <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Books Cat #3</label> <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> <nb_actions>5</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> <row> - <label>Others</label> - <nb_uniq_visitors>20</nb_uniq_visitors> - <nb_visits>20</nb_visits> - <nb_actions>20</nb_actions> - <avg_price>30</avg_price> + <label>Books Cat #4</label> + <nb_visits>5</nb_visits> + <nb_uniq_visitors>5</nb_uniq_visitors> + <nb_actions>5</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml index 95cb364b56..563eaeada9 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsName_day.xml @@ -2,19 +2,226 @@ <result> <row> <label>Book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book2</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book3</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book19</label> + <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book20</label> <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> <nb_actions>1</nb_actions> <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> <row> - <label>Others</label> - <nb_uniq_visitors>24</nb_uniq_visitors> - <nb_visits>24</nb_visits> - <nb_actions>24</nb_actions> - <avg_price>180</avg_price> + <label>Book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>Book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> <avg_quantity>0</avg_quantity> <conversion_rate>0%</conversion_rate> </row> diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml index c234bed59e..4f702e147d 100644 --- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml +++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Goals.getItemsSku_day.xml @@ -1,2 +1,228 @@ <?xml version="1.0" encoding="utf-8" ?> -<result />
\ No newline at end of file +<result> + <row> + <label>id_book0</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book1</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book2</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book3</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book4</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book5</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book6</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book7</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book8</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book9</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book10</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book11</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book12</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book13</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book14</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book15</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book16</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book17</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book18</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book19</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book20</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book21</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book22</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book23</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> + <row> + <label>id_book24</label> + <nb_visits>1</nb_visits> + <nb_uniq_visitors>1</nb_uniq_visitors> + <nb_actions>1</nb_actions> + <avg_price>7.5</avg_price> + <avg_quantity>0</avg_quantity> + <conversion_rate>0%</conversion_rate> + </row> +</result>
\ No newline at end of file diff --git a/tests/javascript/index.php b/tests/javascript/index.php index 6dddf449c8..0a5978481b 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -3562,7 +3562,7 @@ if ($mysql) { test("tracking", function() { - expect(180); + expect(161); // Prevent Opera and HtmlUnit from performing the default action (i.e., load the href URL) var stopEvent = function (evt) { @@ -3863,12 +3863,7 @@ if ($mysql) { tracker.trackEvent("Event Category3", "Event Action3", "Event Name3", 3.333); //Ecommerce views - tracker.setEcommerceView( "", false, ["CATEGORY1","CATEGORY2"] ); - deepEqual( tracker.getCustomVariable(3, "page"), false, "Ecommerce view SKU"); tracker.setEcommerceView( "SKUMultiple", false, ["CATEGORY1","CATEGORY2"] ); - deepEqual( tracker.getCustomVariable(3, "page"), ["_pks","SKUMultiple"], "Ecommerce view sku"); - deepEqual( tracker.getCustomVariable(4, "page"), ["_pkn",""], "Ecommerce view Name"); - deepEqual( tracker.getCustomVariable(5, "page"), ["_pkc","[\"CATEGORY1\",\"CATEGORY2\"]"], "Ecommerce view Category"); tracker.trackPageView("MultipleCategories"); var tracker2 = Piwik.getTracker(); @@ -3897,37 +3892,10 @@ if ($mysql) { // Ecommerce Views tracker3.setEcommerceView( "SKU", "NAME HERE", "CATEGORY HERE" ); - deepEqual( tracker3.getCustomVariable(3, "page"), ["_pks","SKU"], "Ecommerce view SKU"); - deepEqual( tracker3.getCustomVariable(4, "page"), ["_pkn","NAME HERE"], "Ecommerce view Name"); - deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc","CATEGORY HERE"], "Ecommerce view Category"); tracker3.trackPageView("EcommerceView"); tracker3.deleteCustomVariables('page'); - // No data set - tracker3.setEcommerceView( ); - deepEqual( tracker3.getCustomVariable(2, "page"), false, "No data Ecommerce price"); - deepEqual( tracker3.getCustomVariable(3, "page"), false, "No data Ecommerce view SKU"); - deepEqual( tracker3.getCustomVariable(4, "page"), false, "No data Ecommerce view Name"); - deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc",""], "No data Ecommerce view Category"); - tracker3.deleteCustomVariables('page'); - - // all numbers - tracker3.setEcommerceView( 34343, 3432, 343, 12121 ); - deepEqual( tracker3.getCustomVariable(2, "page"), ["_pkp",12121], "All numbers Ecommerce view price"); - deepEqual( tracker3.getCustomVariable(3, "page"), ["_pks",34343], "All numbers Ecommerce view SKU"); - deepEqual( tracker3.getCustomVariable(4, "page"), ["_pkn",3432], "All numbers Ecommerce view Name"); - deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc", '343'], "All numbers Ecommerce view Category"); - tracker3.deleteCustomVariables('page'); - - // all false - tracker3.setEcommerceView( false, false, false, false ); - deepEqual( tracker3.getCustomVariable(2, "page"), false, "All numbers Ecommerce view price"); - deepEqual( tracker3.getCustomVariable(3, "page"), false, "All numbers Ecommerce view SKU"); - deepEqual( tracker3.getCustomVariable(4, "page"), false, "All numbers Ecommerce view Name"); - deepEqual( tracker3.getCustomVariable(5, "page"), ["_pkc", ''], "All numbers Ecommerce view Category"); - tracker3.deleteCustomVariables('page'); - //Ecommerce tests tracker3.addEcommerceItem("SKU PRODUCT", "PRODUCT NAME", "PRODUCT CATEGORY", 11.1111, 2); tracker3.addEcommerceItem("SKU TO REMOVE"); @@ -4143,12 +4111,10 @@ if ($mysql) { ok( /e_c=Event%20Category3&e_a=Event%20Action3&e_n=Event%20Name3&e_v=3.333&idsite=1/.test(results), "event Category + Action + Name + Value"); // ecommerce view - ok( /(EcommerceView).*(&cvar=%7B%225%22%3A%5B%22_pkc%22%2C%22CATEGORY%20HERE%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKU%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22NAME%20HERE%22%5D%7D)/.test(results) - || /(EcommerceView).*(&cvar=%7B%223%22%3A%5B%22_pks%22%2C%22SKU%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22NAME%20HERE%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22CATEGORY%20HERE%22%5D%7D)/.test(results), "ecommerce view"); + ok( /(EcommerceView).*(&_pkc=CATEGORY%20HERE&_pks=SKU&_pkn=NAME)/.test(results), "ecommerce view"); // ecommerce view multiple categories - ok( /(MultipleCategories).*(&cvar=%7B%222%22%3A%5B%22cookiename2PAGE%22%2C%22cookievalue2PAGE%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22%5B%5C%22CATEGORY1%5C%22%2C%5C%22CATEGORY2%5C%22%5D%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKUMultiple%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22%22%5D%7D)/.test(results) - || /(MultipleCategories).*(&cvar=%7B%222%22%3A%5B%22cookiename2PAGE%22%2C%22cookievalue2PAGE%22%5D%2C%223%22%3A%5B%22_pks%22%2C%22SKUMultiple%22%5D%2C%224%22%3A%5B%22_pkn%22%2C%22%22%5D%2C%225%22%3A%5B%22_pkc%22%2C%22%5B%5C%22CATEGORY1%5C%22%2C%5C%22CATEGORY2%5C%22%5D%22%5D%7D)/.test(results), "ecommerce view multiple categories"); + ok( /(MultipleCategories).*(&_pkc=%5B%22CATEGORY1%22%2C%22CATEGORY2%22%5D&_pks=SKUMultiple&_pkn=)/.test(results), "ecommerce view multiple categories"); // Ecommerce order ok( /idgoal=0&ec_id=ORDER%20ID%20YES&revenue=666.66&ec_st=333&ec_tx=222&ec_sh=111&ec_dt=1&ec_items=%5B%5B%22SKU%20PRODUCT%22%2C%22random%22%2C%22random%20PRODUCT%20CATEGORY%22%2C11.1111%2C2%5D%2C%5B%22SKU%20ONLY%20SKU%22%2C%22%22%2C%22%22%2C0%2C1%5D%2C%5B%22SKU%20ONLY%20NAME%22%2C%22PRODUCT%20NAME%202%22%2C%22%22%2C0%2C1%5D%2C%5B%22SKU%20NO%20PRICE%20NO%20QUANTITY%22%2C%22PRODUCT%20NAME%203%22%2C%22CATEGORY%22%2C0%2C1%5D%2C%5B%22SKU%20ONLY%22%2C%22%22%2C%22%22%2C0%2C1%5D%5D/.test( results ), "logEcommerceOrder() with items" ); |