diff --git a/users/auth/splatfestival/353f197638abe79a7d2dc7a7fd522d075d11521d/satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8.js b/users/auth/splatfestival/353f197638abe79a7d2dc7a7fd522d075d11521d/satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8.js index 6c2367c..1ae049d 100644 --- a/users/auth/splatfestival/353f197638abe79a7d2dc7a7fd522d075d11521d/satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8.js +++ b/users/auth/splatfestival/353f197638abe79a7d2dc7a7fd522d075d11521d/satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8.js @@ -1,3 +1,2085 @@ -// All code and conventions are protected by copyright -!function(e,n,i){function a(){k.addEventHandler(e,"orientationchange",a.orientationChange)}function r(){this.rules=k.filter(k.rules,function(t){return"elementexists"===t.event})}function o(){this.rules=k.filter(k.rules,function(t){return"videoplayed"===t.event.substring(0,11)}),this.eventHandler=k.bind(this.onUpdateTime,this)}function s(){var t=this.eventRegex=/^hover\(([0-9]+)\)$/,e=this.rules=[];k.each(k.rules,function(n){var i=n.event.match(t);i&&e.push([Number(n.event.match(t)[1]),n.selector])})}function c(t){k.domReady(k.bind(function(){this.twttr=t||e.twttr,this.initialize()},this))}function u(t){this.delay=250,this.FB=t,k.domReady(k.bind(function(){k.poll(k.bind(this.initialize,this),this.delay,8)},this))}function l(t){t=t||k.rules,this.rules=k.filter(t,function(t){return"inview"===t.event}),this.elements=[],this.eventHandler=k.bind(this.track,this),k.addEventHandler(e,"scroll",this.eventHandler),k.addEventHandler(e,"load",this.eventHandler)}function d(t){k.BaseTool.call(this,t),this.name=t.name||"VisitorID",this.initialize()}function f(t){k.BaseTool.call(this,t)}function h(t){k.BaseTool.call(this,t)}function g(t){k.BaseTool.call(this,t),this.varBindings={},this.events=[],this.products=[],this.customSetupFuns=[]}function p(){k.BaseTool.call(this),this.asyncScriptCallbackQueue=[],this.argsForBlockingScripts=[]}function v(t){k.BaseTool.call(this,t),this.styleElements={},this.targetPageParamsStore={}}function m(t){k.BaseTool.call(this,t),this.name=t.name||"Basic"}var y=Object.prototype.toString,b=e._satellite&&e._satellite.override,k={$data:function(t,e,n){var a="__satellite__",r=k.dataCache,o=t[a];o||(o=t[a]=k.uuid++);var s=r[o];return s||(s=r[o]={}),n===i?s[e]:void(s[e]=n)},uuid:1,dataCache:{},keys:function(t){var e=[];for(var n in t)e.push(n);return e},values:function(t){var e=[];for(var n in t)e.push(t[n]);return e},isArray:Array.isArray||function(t){return"[object Array]"===y.apply(t)},isObject:function(t){return null!=t&&!k.isArray(t)&&"object"==typeof t},isString:function(t){return"string"==typeof t},isNumber:function(t){return"[object Number]"===y.apply(t)&&!k.isNaN(t)},isNaN:function(t){return t!==t},isRegex:function(t){return t instanceof RegExp},isLinkTag:function(t){return!(!t||!t.nodeName||"a"!==t.nodeName.toLowerCase())},each:function(t,e,n){for(var i=0,a=t.length;a>i;i++)e.call(n,t[i],i,t)},map:function(t,e,n){for(var i=[],a=0,r=t.length;r>a;a++)i.push(e.call(n,t[a],a,t));return i},filter:function(t,e,n){for(var i=[],a=0,r=t.length;r>a;a++){var o=t[a];e.call(n,o,a,t)&&i.push(o)}return i},any:function(t,e,n){for(var i=0,a=t.length;a>i;i++){var r=t[i];if(e.call(n,r,i,t))return!0}return!1},every:function(t,e,n){for(var i=!0,a=0,r=t.length;r>a;a++){var o=t[a];i=i&&e.call(n,o,a,t)}return i},contains:function(t,e){return-1!==k.indexOf(t,e)},indexOf:function(t,e){if(t.indexOf)return t.indexOf(e);for(var n=t.length;n--;)if(e===t[n])return n;return-1},find:function(t,e,n){for(var i=0,a=t.length;a>i;i++){var r=t[i];if(e.call(n,r,i,t))return r}return null},textMatch:function(t,e){return"string"==typeof e?t===e:e instanceof RegExp?e.test(t):!1},stringify:function(t,e){if(e=e||[],k.isObject(t)){if(k.contains(e,t))return"";e.push(t)}if(k.isArray(t))return"["+k.map(t,function(t){return k.stringify(t,e)}).join(",")+"]";if(k.isString(t))return'"'+String(t)+'"';if(k.isObject(t)){var n=[];for(var i in t)n.push(i+": "+k.stringify(t[i],e));return"{"+n.join(", ")+"}"}return String(t)},trim:function(t){return null==t?null:t.trim?t.trim():t.replace(/^ */,"").replace(/ *$/,"")},bind:function(t,e){return function(){return t.apply(e,arguments)}},throttle:function(t,e){var n=null;return function(){var i=this,a=arguments;clearTimeout(n),n=setTimeout(function(){t.apply(i,a)},e)}},domReady:function(t){function e(t){for(f=1;t=a.shift();)t()}var i,a=[],r=!1,o=n,s=o.documentElement,c=s.doScroll,u="DOMContentLoaded",l="addEventListener",d="onreadystatechange",f=/^loade|^c/.test(o.readyState);return o[l]&&o[l](u,i=function(){o.removeEventListener(u,i,r),e()},r),c&&o.attachEvent(d,i=function(){/^c/.test(o.readyState)&&(o.detachEvent(d,i),e())}),t=c?function(e){self!=top?f?e():a.push(e):function(){try{s.doScroll("left")}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){f?t():a.push(t)}}(),loadScript:function(t,e){var i=n.createElement("script");k.scriptOnLoad(t,i,e),i.src=t,n.getElementsByTagName("head")[0].appendChild(i)},scriptOnLoad:function(t,e,n){function i(t){t&&k.logError(t),n&&n(t)}"onload"in e?(e.onload=function(){i()},e.onerror=function(){i(new Error("Failed to load script "+t))}):"readyState"in e&&(e.onreadystatechange=function(){var t=e.readyState;("loaded"===t||"complete"===t)&&(e.onreadystatechange=null,i())})},loadScriptOnce:function(t,e){k.loadedScriptRegistry[t]||k.loadScript(t,function(n){n||(k.loadedScriptRegistry[t]=!0),e&&e(n)})},loadedScriptRegistry:{},loadScriptSync:function(t){return k.domReadyFired?void k.notify('Cannot load sync the "'+t+'" script after DOM Ready.',1):void n.write('')},pushAsyncScript:function(t){k.tools["default"].pushAsyncScript(t)},pushBlockingScript:function(t){k.tools["default"].pushBlockingScript(t)},addEventHandler:e.addEventListener?function(t,e,n){t.addEventListener(e,n,!1)}:function(t,e,n){t.attachEvent("on"+e,n)},preventDefault:e.addEventListener?function(t){t.preventDefault()}:function(t){t.returnValue=!1},stopPropagation:function(t){t.cancelBubble=!0,t.stopPropagation&&t.stopPropagation()},containsElement:function(t,e){return t.contains?t.contains(e):!!(16&t.compareDocumentPosition(e))},matchesCss:function(t){function i(t,e){var n=e.tagName;return n?t.toLowerCase()===n.toLowerCase():!1}var a=t.matchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector||t.msMatchesSelector;return a?function(t,i){if(i===n||i===e)return!1;try{return a.call(i,t)}catch(r){return!1}}:t.querySelectorAll?function(t,e){var n=e.parentNode;if(!n)return!1;if(t.match(/^[a-z]+$/i))return i(t,e);try{for(var a=e.parentNode.querySelectorAll(t),r=a.length;r--;)if(a[r]===e)return!0}catch(o){}return!1}:function(t,e){if(t.match(/^[a-z]+$/i))return i(t,e);try{return k.Sizzle.matches(t,[e]).length>0}catch(n){return!1}}}(n.documentElement),cssQuery:function(t){return t.querySelectorAll?function(e,n){var i;try{i=t.querySelectorAll(e)}catch(a){i=[]}n(i)}:function(t,e){if(k.Sizzle){var n;try{n=k.Sizzle(t)}catch(i){n=[]}e(n)}else k.sizzleQueue.push([t,e])}}(n),hasAttr:function(t,e){return t.hasAttribute?t.hasAttribute(e):t[e]!==i},inherit:function(t,e){var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t},extend:function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},toArray:function(){try{var t=Array.prototype.slice;return t.call(n.documentElement.childNodes,0)[0].nodeType,function(e){return t.call(e,0)}}catch(e){return function(t){for(var e=[],n=0,i=t.length;i>n;n++)e.push(t[n]);return e}}}(),equalsIgnoreCase:function(t,e){return null==t?null==e:null==e?!1:String(t).toLowerCase()===String(e).toLowerCase()},poll:function(t,e,n){function i(){k.isNumber(n)&&a++>=n||t()||setTimeout(i,e)}var a=0;e=e||1e3,i()},escapeForHtml:function(t){return t?t.replace(/\&/g,"&").replace(/\/g,">").replace(/\"/g,""").replace(/\'/g,"'").replace(/\//g,"/"):t}};k.availableTools={},k.availableEventEmitters=[],k.fireOnceEvents=["condition","elementexists"],k.initEventEmitters=function(){k.eventEmitters=k.map(k.availableEventEmitters,function(t){return new t})},k.eventEmitterBackgroundTasks=function(){k.each(k.eventEmitters,function(t){"backgroundTasks"in t&&t.backgroundTasks()})},k.initTools=function(t){var e={"default":new p},n=k.settings.euCookieName||"sat_track";for(var i in t){var a,r,o;if(a=t[i],a.euCookie){var s="true"!==k.readCookie(n);if(s)continue}if(r=k.availableTools[a.engine],!r){var c=[];for(var u in k.availableTools)c.push(u);throw new Error("No tool engine named "+a.engine+", available: "+c.join(",")+".")}o=new r(a),o.id=i,e[i]=o}return e},k.preprocessArguments=function(t,e,n,i){function a(t){return i&&k.isString(t)?t.toLowerCase():t}function r(t){var i={};for(var s in t)if(t.hasOwnProperty(s)){var c=t[s];i[s]=k.isObject(c)?r(c):k.isArray(c)?o(c):a(k.replace(c,e,n))}return i}function o(t){for(var i=[],o=0,s=t.length;s>o;o++){var c=t[o];k.isString(c)?c=a(k.replace(c,e,n)):c&&c.constructor===Object&&(c=r(c)),i.push(c)}return i}return t?o(t,i):t},k.execute=function(t,e,n,i){function a(a){var r=i[a||"default"];if(r)try{r.triggerCommand(t,e,n)}catch(o){k.logError(o)}}if(!_satellite.settings.hideActivity)if(i=i||k.tools,t.engine){var r=t.engine;for(var o in i){var s=i[o];s.settings&&s.settings.engine===r&&a(o)}}else t.tool instanceof Array?k.each(t.tool,function(t){a(t)}):a(t.tool)},k.notify=e.console?function(t,e){if(k.settings.notifications)switch(e){case 1:case 2:case 3:console.log("SATELLITE: "+t);break;case 4:console.warn("SATELLITE: "+t);break;case 5:console.error("SATELLITE: "+t);break;default:console.log("SATELLITE: Notify called with incorrect priority.")}}:function(){},k.cleanText=function(t){return null==t?null:k.trim(t).replace(/\s{2,}/g," ").replace(/[^\000-\177]*/g,"")},k.text=function(t){return t.textContent||t.innerText},k.specialProperties={text:k.text,cleanText:function(t){return k.cleanText(k.text(t))}},k.getObjectProperty=function(t,e,n){for(var a,r=e.split("."),o=t,s=k.specialProperties,c=0,u=r.length;u>c;c++){if(null==o)return i;var l=r[c];if(n&&"@"===l.charAt(0)){var d=l.slice(1);o=s[d](o)}else if(o.getAttribute&&(a=l.match(/^getAttribute\((.+)\)$/))){var f=a[1];o=o.getAttribute(f)}else o=o[l]}return o},k.getToolsByType=function(e){if(!e)throw new Error("Tool type is missing");var n=[];for(t in k.tools){var i=k.tools[t];i.settings&&i.settings.engine===e&&n.push(i)}return n},k.setVar=function(){var t=k.data.customVars;if(null==t&&(k.data.customVars={},t=k.data.customVars),"string"==typeof arguments[0]){var e=arguments[0];t[e]=arguments[1]}else if(arguments[0]){var n=arguments[0];for(var i in n)t[i]=n[i]}},k.dataElementSafe=function(t,e){if(arguments.length>2){var n=arguments[2];"pageview"===e?k.dataElementSafe.pageviewCache[t]=n:"session"===e?k.setCookie("_sdsat_"+t,n):"visitor"===e&&k.setCookie("_sdsat_"+t,n,730)}else{if("pageview"===e)return k.dataElementSafe.pageviewCache[t];if("session"===e||"visitor"===e)return k.readCookie("_sdsat_"+t)}},k.dataElementSafe.pageviewCache={},k.realGetDataElement=function(t){var n;return t.selector?k.hasSelector&&k.cssQuery(t.selector,function(e){if(e.length>0){var i=e[0];"text"===t.property?n=i.innerText||i.textContent:k.hasAttr(i,t.property)&&(n=i[t.property]||i.getAttribute(t.property))}}):t.queryParam?n=t.ignoreCase?k.getQueryParamCaseInsensitive(t.queryParam):k.getQueryParam(t.queryParam):t.cookie?n=k.readCookie(t.cookie):t.jsVariable?n=k.getObjectProperty(e,t.jsVariable):t.customJS&&(n=t.customJS()),n},k.getDataElement=function(t,e,n){n=n||k.dataElements[t];var a=k.realGetDataElement(n);return a===i&&n.storeLength?a=k.dataElementSafe(t,n.storeLength):a!==i&&n.storeLength&&k.dataElementSafe(t,n.storeLength,a),a!==i||e||(a=n["default"]||""),n.forceLowerCase&&(a=a.toLowerCase()),a},k.getVar=function(t,a,r){var o,s,c=k.data.customVars,u=r?r.target||r.srcElement:null,l={URI:k.data.URI,uri:k.data.URI,protocol:n.location.protocol,hostname:n.location.hostname};if(k.dataElements&&t in k.dataElements)return k.getDataElement(t);if(s=l[t],s===i)if("this."===t.substring(0,5))t=t.slice(5),s=k.getObjectProperty(a,t,!0);else if("event."===t.substring(0,6))t=t.slice(6),s=k.getObjectProperty(r,t);else if("target."===t.substring(0,7))t=t.slice(7),s=k.getObjectProperty(u,t);else if("window."===t.substring(0,7))t=t.slice(7),s=k.getObjectProperty(e,t);else if("param."===t.substring(0,6))t=t.slice(6),s=k.getQueryParam(t);else if(o=t.match(/^rand([0-9]+)$/)){var d=Number(o[1]),f=(Math.random()*(Math.pow(10,d)-1)).toFixed(0);s=Array(d-f.length+1).join("0")+f}else s=k.getObjectProperty(c,t);return s},k.getVars=function(t,e,n){var i={};return k.each(t,function(t){i[t]=k.getVar(t,e,n)}),i},k.replace=function(t,e,n){return"string"!=typeof t?t:t.replace(/%(.*?)%/g,function(t,i){var a=k.getVar(i,e,n);return null==a?t:a})},k.searchVariables=function(t,e,n){if(!t||0===t.length)return"";for(var i=[],a=0,r=t.length;r>a;a++){var o=t[a],s=k.getVar(o,e,n);i.push(o+"="+escape(s))}return"?"+i.join("&")},k.fireRule=function(t,e,n){var i=t.trigger;if(i){for(var a=0,r=i.length;r>a;a++){var o=i[a];k.execute(o,e,n)}k.contains(k.fireOnceEvents,t.event)&&(t.expired=!0)}},k.isLinked=function(t){for(var e=t;e;e=e.parentNode)if(k.isLinkTag(e))return!0;return!1},k.firePageLoadEvent=function(t){for(var e=n.location,i={type:t,target:e},a=k.pageLoadRules,r=a.length;r--;){var o=a[r];k.ruleMatches(o,i,e)&&(k.notify('Rule "'+o.name+'" fired.',1),k.fireRule(o,e,i),a.splice(r,1))}for(var s in k.tools){var c=k.tools[s];c.endPLPhase&&c.endPLPhase(t)}},k.track=function(t){t=t.replace(/^\s*/,"").replace(/\s*$/,"");for(var e=0;e0)return!1;if(t.expired)return!1;if("inview"===c&&e.inviewDelay!==t.inviewDelay)return!1;if(!d&&(t.bubbleFireIfParent===!1||0!==a&&t.bubbleFireIfChildFired===!1))return!1;if(t.selector&&!k.matchesCss(t.selector,i))return!1;if(!k.propertiesMatch(s,i))return!1;if(null!=u)if("string"==typeof u){if(u!==i.value)return!1}else if(!u.test(i.value))return!1;if(r)try{if(!r.call(i,e,l))return k.notify('Condition for rule "'+t.name+'" not met.',1),!1}catch(f){return k.notify('Condition for rule "'+t.name+'" not met. Error: '+f.message,1),!1}if(o){var h=k.find(o,function(n){try{return!n.call(i,e,l)}catch(a){return k.notify('Condition for rule "'+t.name+'" not met. Error: '+a.message,1),!0}});if(h)return k.notify("Condition "+h.toString()+' for rule "'+t.name+'" not met.',1),!1}return!0},k.evtHandlers={},k.bindEvent=function(t,e){var n=k.evtHandlers;n[t]||(n[t]=[]),n[t].push(e)},k.whenEvent=k.bindEvent,k.unbindEvent=function(t,e){var n=k.evtHandlers;if(n[t]){var i=k.indexOf(n[t],e);n[t].splice(i,1)}},k.bindEventOnce=function(t,e){var n=function(){k.unbindEvent(t,n),e.apply(null,arguments)};k.bindEvent(t,n)},k.isVMLPoisoned=function(t){if(!t)return!1;try{t.nodeName}catch(e){if("Attribute only valid on v:image"===e.message)return!0}return!1},k.handleEvent=function(t){if(!k.$data(t,"eventProcessed")){var e=t.type.toLowerCase(),n=t.target||t.srcElement,i=0,a=k.rules,r=(k.tools,k.evtHandlers[t.type]);if(k.isVMLPoisoned(n))return void k.notify("detected "+e+" on poisoned VML element, skipping.",1);r&&k.each(r,function(e){e(t)});var o=n&&n.nodeName;o?k.notify("detected "+e+" on "+n.nodeName,1):k.notify("detected "+e,1);for(var s=n;s;s=s.parentNode){var c=!1;if(k.each(a,function(e){k.ruleMatches(e,t,s,i)&&(k.notify('Rule "'+e.name+'" fired.',1),k.fireRule(e,s,t),i++,e.bubbleStop&&(c=!0))}),c)break}k.$data(t,"eventProcessed",!0)}},k.onEvent=n.querySelectorAll?function(t){k.handleEvent(t)}:function(){var t=[],e=function(e){e.selector?t.push(e):k.handleEvent(e)};return e.pendingEvents=t,e}(),k.fireEvent=function(t,e){k.onEvent({type:t,target:e})},k.registerEvents=function(t,e){for(var n=e.length-1;n>=0;n--){var i=e[n];k.$data(t,i+".tracked")||(k.addEventHandler(t,i,k.onEvent),k.$data(t,i+".tracked",!0))}},k.registerEventsForTags=function(t,e){for(var i=t.length-1;i>=0;i--)for(var a=t[i],r=n.getElementsByTagName(a),o=r.length-1;o>=0;o--)k.registerEvents(r[o],e)},k.setListeners=function(){k.registerEvents(n,["click","submit"])},k.setFormListeners=function(){k.registerEventsForTags(["input","select","textarea","button"],["select","change","focus","blur","keypress"])},k.setVideoListeners=function(){k.registerEventsForTags(["video"],["play","pause","ended","volumechange","stalled","timeupdate","loadeddata"])},k.readStoredSetting=function(t){return e.localStorage?(t="sdsat_"+t,e.localStorage.getItem(t)):null},k.loadStoredSettings=function(){var t=k.readStoredSetting("debug"),e=k.readStoredSetting("hide_activity");t&&(k.settings.notifications="true"===t),e&&(k.settings.hideActivity="true"===e)},k.isRuleActive=function(t,e){function n(t,e){return e=a(e,{hour:t[h](),minute:t[g]()}),Math.floor(Math.abs((t.getTime()-e.getTime())/864e5))}function i(t,e){function n(t){return 12*t[d]()+t[f]()}return Math.abs(n(t)-n(e))}function a(t,e){var n=new Date(t.getTime());for(var i in e){var a=e[i];switch(i){case"hour":n[p](a);break;case"minute":n[v](a);break;case"date":n[m](a)}}return n}function r(t,e){var n=t[h](),i=t[g](),a=e[h](),r=e[g]();return 60*n+i>60*a+r}function o(t,e){var n=t[h](),i=t[g](),a=e[h](),r=e[g]();return 60*a+r>60*n+i}var s=t.schedule;if(!s)return!0;var c=s.utc,u=c?"getUTCDate":"getDate",l=c?"getUTCDay":"getDay",d=c?"getUTCFullYear":"getFullYear",f=c?"getUTCMonth":"getMonth",h=c?"getUTCHours":"getHours",g=c?"getUTCMinutes":"getMinutes",p=c?"setUTCHours":"setHours",v=c?"setUTCMinutes":"setMinutes",m=c?"setUTCDate":"setDate";if(e=e||new Date,s.repeat){if(r(s.start,e))return!1;if(o(s.end,e))return!1;if(e=s.endRepeat)return!1;if("daily"===s.repeat){if(s.repeatEvery){var y=n(s.start,e);if(y%s.repeatEvery!==0)return!1}}else if("weekly"===s.repeat){if(s.days){if(!k.contains(s.days,e[l]()))return!1}else if(s.start[l]()!==e[l]())return!1;if(s.repeatEvery){var b=n(s.start,e);if(b%(7*s.repeatEvery)!==0)return!1}}else if("monthly"===s.repeat){if(s.repeatEvery){var S=i(s.start,e);if(S%s.repeatEvery!==0)return!1}if(s.nthWeek&&s.mthDay){if(s.mthDay!==e[l]())return!1;var E=Math.floor((e[u]()-e[l]()+1)/7);if(s.nthWeek!==E)return!1}else if(s.start[u]()!==e[u]())return!1}else if("yearly"===s.repeat){if(s.start[f]()!==e[f]())return!1;if(s.start[u]()!==e[u]())return!1;if(s.repeatEvery){var b=Math.abs(s.start[d]()-e[d]());if(b%s.repeatEvery!==0)return!1}}}else{if(s.start>e)return!1;if(s.end0?k.equalsIgnoreCase(t.substring(n),e):!1},k.getVisitorId=function(){var t=k.getToolsByType("visitor_id");return 0===t.length?null:t[0].getInstance()},k.filterRules=function(){function t(t){return k.ruleInScope(t,e)&&k.isRuleActive(t)?!0:!1}var e={hostname:location.hostname,protocol:location.protocol,URI:k.data.URI};k.rules=k.filter(k.rules,t),k.pageLoadRules=k.filter(k.pageLoadRules,t)},k.ruleInScope=function(t,e){function n(t,e){function n(t){return e.match(t)}var a=t.include,r=t.exclude;if(a&&i(a,e))return!0;if(r){if(k.isString(r)&&r===e)return!0;if(k.isArray(r)&&k.any(r,n))return!0;if(k.isRegex(r)&&n(r))return!0}return!1}function i(t,e){function n(t){return e.match(t)}return k.isString(t)&&t!==e?!0:k.isArray(t)&&!k.any(t,n)?!0:k.isRegex(t)&&!n(t)?!0:!1}var a=t.scope;if(!a)return!0;var r=a.URI,o=a.subdomains,s=a.domains,c=a.protocols;return r&&n(r,e.URI)?!1:o&&n(o,e.hostname)?!1:s&&i(s,e.hostname)?!1:c&&i(c,e.protocol)?!1:!0},k.backgroundTasks=function(){+new Date;k.setFormListeners(),k.setVideoListeners(),k.loadStoredSettings(),k.registerNewElementsForDynamicRules(),k.eventEmitterBackgroundTasks();+new Date},k.registerNewElementsForDynamicRules=function(){function t(e,n){var i=t.cache[e];return i?n(i):void k.cssQuery(e,function(i){t.cache[e]=i,n(i)})}t.cache={},k.each(k.dynamicRules,function(e){t(e.selector,function(t){k.each(t,function(t){k.$data(t,"dynamicRules.seen")||(k.$data(t,"dynamicRules.seen",!0),k.propertiesMatch(e.property,t)&&k.registerEvents(t,[e.event]))})})})},k.ensureCSSSelector=function(){return n.querySelectorAll?void(k.hasSelector=!0):(k.loadingSizzle=!0,k.sizzleQueue=[],void k.loadScript(k.basePath()+"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/selector.js",function(){if(!k.Sizzle)return void k.logError(new Error("https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/Failed to load selector.js"));var t=k.onEvent.pendingEvents;k.each(t,function(t){k.handleEvent(t)},this),k.onEvent=k.handleEvent,k.hasSelector=!0,delete k.loadingSizzle,k.each(k.sizzleQueue,function(t){k.cssQuery(t[0],t[1])}),delete k.sizzleQueue}))},k.errors=[],k.logError=function(t){k.errors.push(t),k.notify(t.name+" - "+t.message,5)},k.pageBottom=function(){k.pageBottomFired=!0,k.firePageLoadEvent("pagebottom")},k.stagingLibraryOverride=function(){var t="true"===k.readStoredSetting("stagingLibrary");if(t){for(var e,i,a,r=n.getElementsByTagName("script"),o=/^(.*)satelliteLib-(.*)\.js$/,s=/^(.*)satelliteLib-(.*)-staging\.js$/,c=0,u=r.length;u>c&&(a=r[c].getAttribute("src"),!a||(e||(e=a.match(o)),i||(i=a.match(s)),!i));c++);if(e&&!i){var l=e[1]+"satelliteLib-"+e[2]+"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/-staging.js";return n.write(''),!0}}return!1},k.checkAsyncInclude=function(){e.satellite_asyncLoad&&k.notify('You may be using the async installation of Satellite. In-page HTML and the "pagebottom" event will not work. Please update your Satellite installation for these features.',5)},k.hasMultipleDomains=function(){return k.settings.domainList.length>1},k.handleOverrides=function(){if(b)for(var t in b)b.hasOwnProperty(t)&&(k.data[t]=b[t])},k.privacyManagerParams=function(){var t={};k.extend(t,k.settings.privacyManagement);var e=[];for(var n in k.tools){var i=k.tools[n],a=i.settings;a&&"sc"===a.engine&&e.push(i)}var r=k.filter(k.map(e,function(t){return t.getTrackingServer()}),function(t){return null!=t});t.adobeAnalyticsTrackingServers=r;for(var o=["bannerText","headline","introductoryText","customCSS"],s=0;s0){var e=t[0];if(k.$data(e,"elementexists.seen"))return;k.$data(e,"elementexists.seen",!0),k.onEvent({type:"elementexists",target:e})}})})},k.availableEventEmitters.push(r),o.prototype={backgroundTasks:function(){var t=this.eventHandler;k.each(this.rules,function(e){k.cssQuery(e.selector||"video",function(e){k.each(e,function(e){k.$data(e,"videoplayed.tracked")||(k.addEventHandler(e,"timeupdate",k.throttle(t,100)),k.$data(e,"videoplayed.tracked",!0))})})})},evalRule:function(t,e){var n=e.event,i=t.seekable,a=i.start(0),r=i.end(0),o=t.currentTime,s=e.event.match(/^videoplayed\(([0-9]+)([s%])\)$/);if(s){var c=s[2],u=Number(s[1]),l="%"===c?function(){return 100*(o-a)/(r-a)>=u}:function(){return o-a>=u};!k.$data(t,n)&&l()&&(k.$data(t,n,!0),k.onEvent({type:n,target:t}))}},onUpdateTime:function(t){var e=this.rules,n=t.target;if(n.seekable&&0!==n.seekable.length)for(var i=0,a=e.length;a>i;i++)this.evalRule(n,e[i])}},k.availableEventEmitters.push(o),s.prototype={backgroundTasks:function(){var t=this;k.each(this.rules,function(e){var n=e[1],i=e[0];k.cssQuery(n,function(e){k.each(e,function(e){t.trackElement(e,i)})})},this)},trackElement:function(t,e){var n=this,i=k.$data(t,"hover.delays");i?k.contains(i,e)||i.push(e):(k.addEventHandler(t,"mouseover",function(e){n.onMouseOver(e,t)}),k.addEventHandler(t,"mouseout",function(e){n.onMouseOut(e,t)}),k.$data(t,"hover.delays",[e]))},onMouseOver:function(t,e){var n=t.target||t.srcElement,i=t.relatedTarget||t.fromElement,a=(e===n||k.containsElement(e,n))&&!k.containsElement(e,i);a&&this.onMouseEnter(e)},onMouseEnter:function(t){var e=k.$data(t,"hover.delays"),n=k.map(e,function(e){return setTimeout(function(){k.onEvent({type:"hover("+e+")",target:t})},e)});k.$data(t,"hover.delayTimers",n)},onMouseOut:function(t,e){var n=t.target||t.srcElement,i=t.relatedTarget||t.toElement,a=(e===n||k.containsElement(e,n))&&!k.containsElement(e,i);a&&this.onMouseLeave(e)},onMouseLeave:function(t){var e=k.$data(t,"hover.delayTimers");e&&k.each(e,function(t){clearTimeout(t)})}},k.availableEventEmitters.push(s),c.prototype={initialize:function(){var t=this.twttr;t&&"function"==typeof t.ready&&t.ready(k.bind(this.bind,this))},bind:function(){this.twttr.events.bind("tweet",function(t){t&&(k.notify("tracking a tweet button",1),k.onEvent({type:"twitter.tweet",target:n}))})}},k.availableEventEmitters.push(c),u.prototype={initialize:function(){return this.FB=this.FB||e.FB,this.FB&&this.FB.Event&&this.FB.Event.subscribe?(this.bind(),!0):void 0},bind:function(){this.FB.Event.subscribe("edge.create",function(){k.notify("tracking a facebook like",1),k.onEvent({type:"facebook.like",target:n})}),this.FB.Event.subscribe("edge.remove",function(){k.notify("tracking a facebook unlike",1),k.onEvent({type:"facebook.unlike",target:n})}),this.FB.Event.subscribe("message.send",function(){k.notify("tracking a facebook share",1),k.onEvent({type:"facebook.send",target:n})})}},k.availableEventEmitters.push(u),l.offset=function(t){var i;try{i=t.getBoundingClientRect()}catch(a){}var r=n,o=r.documentElement,s=r.body,c=e,u=o.clientTop||s.clientTop||0,l=o.clientLeft||s.clientLeft||0,d=c.pageYOffset||o.scrollTop||s.scrollTop,f=c.pageXOffset||o.scrollLeft||s.scrollLeft,h=i.top+d-u,g=i.left+f-l;return{top:h,left:g}},l.getViewportHeight=function(){var t=e.innerHeight,i=n.compatMode;return i&&(t="CSS1Compat"==i?n.documentElement.clientHeight:n.body.clientHeight),t},l.getScrollTop=function(){return n.documentElement.scrollTop?n.documentElement.scrollTop:n.body.scrollTop},l.prototype={backgroundTasks:function(){var t=this.elements;k.each(this.rules,function(e){k.cssQuery(e.selector,function(n){var i=0;k.each(n,function(e){k.contains(t,e)||(t.push(e),i++)}),i&&k.notify(e.selector+" added "+i+" elements.",1)})}),this.track()},elementIsInView:function(t){var e=l.getViewportHeight(),n=l.getScrollTop(),i=l.offset(t).top,a=t.offsetHeight;return!(n>i+a||i>n+e)},checkInView:function(t,e){var n=k.$data(t,"inview");if(this.elementIsInView(t)){n||k.$data(t,"inview",!0);var i=this;this.processRules(t,function(n,a,r){if(e||!n.inviewDelay)k.$data(t,a,!0),k.onEvent({type:"inview",target:t,inviewDelay:n.inviewDelay});else if(n.inviewDelay){var o=k.$data(t,r);o&&clearTimeout(o),o=setTimeout(function(){i.checkInView(t,!0)},n.inviewDelay),k.$data(t,r,o) -}})}else n&&k.$data(t,"inview",!1),this.processRules(t,function(e,n,i){var a=k.$data(t,i);a&&clearTimeout(a)})},track:function(){k.each(this.elements,function(t){this.checkInView(t)},this)},processRules:function(t,e){k.each(this.rules,function(n,i){var a=n.inviewDelay?"viewed_"+n.inviewDelay:"viewed",r="inview_timeout_id_"+i;k.$data(t,a)||k.matchesCss(n.selector,t)&&e(n,a,r)})}},k.availableEventEmitters.push(l),k.extend(d.prototype,{initialize:function(){var t,e=this.settings;k.notify("Visitor ID: Initializing tool",1),t=this.createInstance(e.mcOrgId,e.namespace,e.initVars),null!==t&&(e.customerIDs&&this.applyCustomerIDs(t,e.customerIDs),e.autoRequest&&t.getMarketingCloudVisitorID(),this.instance=t)},createInstance:function(t,e,n){if(!k.isString(t))return k.notify('Visitor ID: Cannot create instance using mcOrgId: "'+t+'"',4),null;k.notify('Visitor ID: Create instance using mcOrgId: "'+t+'"',1);var i=new Visitor(t,e);return this.applyInitVars(i,n),i},getInstance:function(){return this.instance},applyInitVars:function(t,e){k.isObject(e)!==!1&&(e=this.parseValues(e),k.extend(t,e),k.notify("Visitor ID: Set variables: "+k.stringify(e),1))},applyCustomerIDs:function(t,e){k.isObject(e)!==!1&&(e=this.parseValues(e),t.setCustomerIDs(e),k.notify("Visitor ID: Set Customer IDs: "+k.stringify(e),1))},parseValues:function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=k.replace(t[n]));return e}}),k.availableTools.visitor_id=d,k.inherit(f,k.BaseTool),k.extend(f.prototype,{name:"GA",initialize:function(){var t=this.settings,n=e._gaq,i=t.initCommands||[],a=t.customInit;if(n||(_gaq=[]),this.isSuppressed())k.notify("GA: page code not loaded(suppressed).",1);else{if(!n&&!f.scriptLoaded){var r=k.isHttps(),o=(r?"https://ssl":"http://www")+"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/.google-analytics.com/ga.js";t.url&&(o=r?t.url.https:t.url.http),k.loadScript(o),f.scriptLoaded=!0,k.notify("GA: page code loaded.",1)}{var s=(t.domain,t.trackerName),c=S.allowLinker(),u=t.account;k.settings.domainList||[]}_gaq.push([this.cmd("setAccount"),u]),c&&_gaq.push([this.cmd("setAllowLinker"),c]),_gaq.push([this.cmd("setDomainName"),S.cookieDomain()]),k.each(i,function(t){var e=[this.cmd(t[0])].concat(t.slice(1));_gaq.push(e)},this),a&&(this.suppressInitialPageView=!1===a(_gaq,s)),t.pageName&&this.$overrideInitialPageView(null,null,t.pageName)}this.initialized=!0,k.fireEvent(this.id+".configure",_gaq,s)},isSuppressed:function(){return this._cancelToolInit||this.settings.initTool===!1},tracker:function(){return this.settings.trackerName},cmd:function(t){var e=this.tracker();return e?e+"._"+t:"_"+t},$overrideInitialPageView:function(t,e,n){this.urlOverride=n},trackInitialPageView:function(){if(!this.isSuppressed()&&!this.suppressInitialPageView)if(this.urlOverride){var t=k.preprocessArguments([this.urlOverride],location,null,this.forceLowerCase);this.$missing$("trackPageview",null,null,t)}else this.$missing$("trackPageview")},endPLPhase:function(t){var e=this.settings.loadOn;t===e&&(k.notify("GA: Initializing at "+t,1),this.initialize(),this.flushQueue(),this.trackInitialPageView())},call:function(t,e,n,i){if(!this._cancelToolInit){var a=(this.settings,this.tracker()),r=this.cmd(t),i=i?[r].concat(i):[r];_gaq.push(i),a?k.notify("GA: sent command "+t+" to tracker "+a+(i.length>1?" with parameters ["+i.slice(1).join(", ")+"]":"")+".",1):k.notify("GA: sent command "+t+(i.length>1?" with parameters ["+i.slice(1).join(", ")+"]":"")+".",1)}},$missing$:function(t,e,n,i){this.call(t,e,n,i)},$postTransaction:function(t,n,i){var a=k.data.customVars.transaction=e[i];this.call("addTrans",t,n,[a.orderID,a.affiliation,a.total,a.tax,a.shipping,a.city,a.state,a.country]),k.each(a.items,function(e){this.call("addItem",t,n,[e.orderID,e.sku,e.product,e.category,e.unitPrice,e.quantity])},this),this.call("trackTrans",t,n)},delayLink:function(t,e){var n=this;if(S.allowLinker()&&t.hostname.match(this.settings.linkerDomains)&&!k.isSubdomainOf(t.hostname,location.hostname)){k.preventDefault(e);var i=k.settings.linkDelay||100;setTimeout(function(){n.call("link",t,e,[t.href])},i)}},popupLink:function(t,n){if(e._gat){k.preventDefault(n);var i=this.settings.account,a=e._gat._createTracker(i),r=a._getLinkerUrl(t.href);e.open(r)}},$link:function(t,e){"_blank"===t.getAttribute("target")?this.popupLink(t,e):this.delayLink(t,e)},$trackEvent:function(t,e){var n=Array.prototype.slice.call(arguments,2);if(n.length>=4&&null!=n[3]){var i=parseInt(n[3],10);k.isNaN(i)&&(i=1),n[3]=i}this.call("trackEvent",t,e,n)}}),k.availableTools.ga=f,k.inherit(h,k.BaseTool),k.extend(h.prototype,{name:"GAUniversal",isPageCodeLoadSuppressed:function(){return this.settings.initTool===!1||this._cancelToolInit===!0},isCallSuppressed:function(){return this._cancelToolInit===!0},endPLPhase:function(t){var e=this.settings,n=e.loadOn;if(this.isPageCodeLoadSuppressed())return void k.notify("GAU: Page code not loaded(suppressed).",1);if(t===n){if(k.notify("GAU: Initializing at "+t,1),this.initialize(),this.flushQueue(),this.suppressInitialPageView)return;this.call("send","pageview")}},initialize:function(){var t = "";e[t]=e[t]||this.createGAObject(),e.GoogleAnalyticsObject=t,k.notify("GAU: Page code loaded.",1),k.loadScriptOnce(this.getToolUrl());var n=this.settings;if(S.allowLinker()&&n.allowLinker!==!1?this.createAccountForLinker():this.createAccount(),this.executeInitCommands(),n.customInit){var i=n.customInit,a=i(e[t],this.getTrackerName());a===!1&&(this.suppressInitialPageView=!0)}this.initialized=!0},getTrackerName:function(){return this.settings.trackerSettings.name||""},createGAObject:function(){var t=function(){t.q.push(arguments)};return t.q=[],t.l=1*new Date,t},create:function(t){var e=this.settings.trackerSettings;e.cookieDomain||(e.cookieDomain=S.cookieDomain()),k.extend(e,t||{}),this.call("create",e)},createAccount:function(){this.create()},createAccountForLinker:function(){var t={};S.allowLinker()&&(t.allowLinker=!0),this.create(t),this.call("require","linker"),this.call("linker:autoLink",this.autoLinkDomains(),!1,!0)},autoLinkDomains:function(){var t=location.hostname;return k.filter(k.settings.domainList,function(e){return e!==t})},executeInitCommands:function(){var t=this.settings;t.initCommands&&k.each(t.initCommands,function(t){this.call.apply(this,t)},this)},call:function(){return"function"!=typeof ga?void k.notify("GA Universal function not found!",4):void(this.isCallSuppressed()||(arguments[0]=this.cmd(arguments[0]),this.log(k.toArray(arguments)),ga.apply(e,arguments)))},$missing$:function(t,e,n,i){i=i||[],i=[t].concat(i),this.call.apply(this,i)},getToolUrl:function(){var t=this.settings,e=k.isHttps();return t.url?e?t.url.https:t.url.http:(e?"https://ssl":"http://www")+"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/.google-analytics.com/analytics.js"},cmd:function(t){var e=["send","set","get"],n=this.getTrackerName();return n&&-1!==k.indexOf(e,t)?n+"."+t:t},log:function(t){var e=t[0],n=this.getTrackerName()||"default",i="GA Universal: sent command "+e+" to tracker "+n;if(t.length>1){{k.stringify(t.slice(1))}i+=" with parameters "+k.stringify(t.slice(1))}i+=".",k.notify(i,1)}}),k.availableTools.ga_universal=h;var S={allowLinker:function(){return k.hasMultipleDomains()},cookieDomain:function(){var t=k.settings.domainList,n=k.find(t,function(t){var n=e.location.hostname;return k.equalsIgnoreCase(n.slice(n.length-t.length),t)}),i=n?"."+n:"auto";return i}};k.inherit(g,k.BaseTool),k.extend(g.prototype,{name:"SC",initialize:function(t){if(!this._cancelToolInit)if(this.settings.initVars=this.substituteVariables(this.settings.initVars,{type:t}),this.settings.initTool!==!1){var n=this.settings.sCodeURL||k.basePath()+"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/s_code.js";"object"==typeof n&&(n="https:"===e.location.protocol?n.https:n.http),n.match(/^https?:/)||(n=k.basePath()+n),this.settings.initVars&&this.$setVars(null,null,this.settings.initVars),k.loadScript(n,k.bind(this.onSCodeLoaded,this)),this.initializing=!0}else this.initializing=!0,this.pollForSC()},onSCodeLoaded:function(){this.initialized=!0,this.initializing=!1,k.notify("Adobe Analytics: loaded.",1),k.fireEvent(this.id+".load",this.getS()),this.flushQueueExceptTrackLink(),this.sendBeacon(),this.flushQueue()},pollForSC:function(){k.poll(k.bind(function(){return"function"==typeof e.s_gi?(this.initialized=!0,this.initializing=!1,k.notify("Adobe Analytics: loaded (manual).",1),k.fireEvent(this.id+".load",this.getS()),this.flushQueue(),!0):void 0},this))},flushQueueExceptTrackLink:function(){if(this.pending){for(var t=[],e=0;e0&&(t.events=r.join(","));var u=k.getVisitorId();return u&&(t.visitor=k.getVisitorId()),t},concatWithToolVarBindings:function(t){var e=this.settings.initVars||{};return k.map(["trackingServer","trackingServerSecure"],function(n){e[n]&&!t[n]&&(t[n]=e[n])}),t},applyVarBindingsOnTracker:function(t,e){for(var n in e)t[n]=e[n]},clearVarBindings:function(){this.varBindings={}},clearCustomSetup:function(){this.customSetupFuns=[]},sendBeacon:function(){var t=this.getS(e[this.settings.renameS||"s"]);return t?this.settings.customInit&&this.settings.customInit(t)===!1?void k.notify("Adobe Analytics: custom init suppressed beacon",1):(this.settings.executeCustomPageCodeFirst&&this.applyVarBindingsOnTracker(t,this.varBindings),this.executeCustomSetupFuns(t),t.t(),this.clearVarBindings(),this.clearCustomSetup(),void k.notify("Adobe Analytics: tracked page view",1)):void k.notify("Adobe Analytics: page code not loaded",1)},executeCustomSetupFuns:function(t){k.each(this.customSetupFuns,function(n){n.call(e,t)})},$trackLink:function(t,e,n){n=n||{};var i=n.type,a=n.linkName;!a&&t&&t.nodeName&&"a"===t.nodeName.toLowerCase()&&(a=t.innerHTML),a||(a="link clicked");var r=n&&n.setVars,o=n&&n.addEvent||[],s=this.getS(null,{setVars:r,addEvent:o});if(!s)return void k.notify("Adobe Analytics: page code not loaded",1);var c=s.linkTrackVars,u=s.linkTrackEvents,l=this.definedVarNames(r);n&&n.customSetup&&n.customSetup.call(t,e,s),o.length>0&&l.push("events"),s.products&&l.push("products"),l=this.mergeTrackLinkVars(s.linkTrackVars,l),o=this.mergeTrackLinkVars(s.linkTrackEvents,o),s.linkTrackVars=this.getCustomLinkVarsList(l);var d=k.map(o,function(t){return t.split(":")[0]});s.linkTrackEvents=this.getCustomLinkVarsList(d),s.tl(!0,i||"o",a),k.notify(["Adobe Analytics: tracked link ","using: linkTrackVars=",k.stringify(s.linkTrackVars),"; linkTrackEvents=",k.stringify(s.linkTrackEvents)].join(""),1),s.linkTrackVars=c,s.linkTrackEvents=u},mergeTrackLinkVars:function(t,e){return t&&(e=t.split(",").concat(e)),e},getCustomLinkVarsList:function(t){var e=k.indexOf(t,"None");return e>-1&&t.length>1&&t.splice(e,1),t.join(",")},definedVarNames:function(t){t=t||this.varBindings;var e=[];for(var n in t)/^(eVar[0-9]+)|(prop[0-9]+)$/.test(n)&&e.push(n);return e},getTrackingServer:function(){var t=this,n=t.getS();if(n&&n.trackingServer)return n.trackingServer;var i=t.getAccount(e.location.hostname);if(!i)return null;var a,r,o,s="",c=n&&n.dc;return a=i,r=a.indexOf(","),r>=0&&(a=a.gb(0,r)),a=a.replace(/[^A-Za-z0-9]/g,""),s||(s="2o7.net"),c=c?(""+c).toLowerCase():"d1","2o7.net"==s&&("d1"==c?c="112":"d2"==c&&(c="122"),o=""),r=a+"."+c+"."+o+s},$trackPageView:function(t,e,n){var i=n&&n.setVars,a=n&&n.addEvent||[],r=this.getS(null,{setVars:i,addEvent:a});return r?(r.linkTrackVars="",r.linkTrackEvents="",this.executeCustomSetupFuns(r),n&&n.customSetup&&n.customSetup.call(t,e,r),r.t(),this.clearVarBindings(),this.clearCustomSetup(),void k.notify("Adobe Analytics: tracked page view",1)):void k.notify("Adobe Analytics: page code not loaded",1)},$postTransaction:function(t,n,i){var a=k.data.transaction=e[i],r=this.varBindings,o=this.settings.fieldVarMapping;if(k.each(a.items,function(t){this.products.push(t)},this),r.products=k.map(this.products,function(t){var e=[];if(o&&o.item)for(var n in o.item){var i=o.item[n];e.push(i+"="+t[n]),"event"===i.substring(0,5)&&this.events.push(i)}var a=["",t.product,t.quantity,t.unitPrice*t.quantity];return e.length>0&&a.push(e.join("|")),a.join(";")},this).join(","),o&&o.transaction){var s=[];for(var c in o.transaction){var i=o.transaction[c];s.push(i+"="+a[c]),"event"===i.substring(0,5)&&this.events.push(i)}r.products.length>0&&(r.products+=","),r.products+=";;;;"+s.join("|")}},$addEvent:function(){for(var t=2,e=arguments.length;e>t;t++)this.events.push(arguments[t])},$addProduct:function(){for(var t=2,e=arguments.length;e>t;t++)this.products.push(arguments[t])}}),k.availableTools.sc=g,k.inherit(p,k.BaseTool),k.extend(p.prototype,{name:"Default",$loadIframe:function(t,n,i){var a=i.pages,r=i.loadOn,o=k.bind(function(){k.each(a,function(e){this.loadIframe(t,n,e)},this)},this);r||o(),"domready"===r&&k.domReady(o),"load"===r&&k.addEventHandler(e,"load",o)},loadIframe:function(t,e,i){var a=n.createElement("iframe");a.style.display="none";var r=k.data.host,o=i.data,s=this.scriptURL(i.src),c=k.searchVariables(o,t,e);r&&(s=k.basePath()+s),s+=c,a.src=s;var u=n.getElementsByTagName("body")[0];u?u.appendChild(a):k.domReady(function(){n.getElementsByTagName("body")[0].appendChild(a)})},scriptURL:function(t){var e=k.settings.scriptDir||"";return e+t},$loadScript:function(t,n,i){var a=i.scripts,r=i.sequential,o=i.loadOn,s=k.bind(function(){r?this.loadScripts(t,n,a):k.each(a,function(e){this.loadScripts(t,n,[e])},this)},this);o?"domready"===o?k.domReady(s):"load"===o&&k.addEventHandler(e,"load",s):s()},loadScripts:function(t,e,n){function i(){if(r.length>0&&a){var c=r.shift();c.call(t,e,o)}var u=n.shift();if(u){var l=k.data.host,d=s.scriptURL(u.src);l&&(d=k.basePath()+d),k.loadScript(d,i),a=u}}try{var a,n=n.slice(0),r=this.asyncScriptCallbackQueue,o=e.target||e.srcElement,s=this}catch(c){console.error("scripts is",k.stringify(n))}i()},$loadBlockingScript:function(t,e,n){var i=n.scripts,a=(n.loadOn,k.bind(function(){k.each(i,function(n){this.loadBlockingScript(t,e,n)},this)},this));a()},loadBlockingScript:function(t,e,n){var i=this.scriptURL(n.src),a=k.data.host,r=e.target||e.srcElement;a&&(i=k.basePath()+i),this.argsForBlockingScripts.push([t,e,r]),k.loadScriptSync(i)},pushAsyncScript:function(t){this.asyncScriptCallbackQueue.push(t)},pushBlockingScript:function(t){var e=this.argsForBlockingScripts.shift(),n=e[0];t.apply(n,e.slice(1))},$writeHTML:function(t,e){if(k.domReadyFired)return void k.notify("Command writeHTML failed. You may be using an async installation of Satellite.",1);if("pagebottom"!==e.type&&"pagetop"!==e.type)return void k.notify("You can only use writeHTML on the `pagetop` and `pagebottom` events.",1);for(var i=2,a=arguments.length;a>i;i++){var r=arguments[i].html;r=k.replace(r,t,e),n.write(r)}},linkNeedsDelayActivate:function(t,n){n=n||e;var i=t.tagName,a=t.getAttribute("target"),r=t.getAttribute("href");return i&&"a"!==i.toLowerCase()?!1:r?a?"_blank"===a?!1:"_top"===a?n.top===n:"_parent"===a?!1:"_self"===a?!0:n.name?a===n.name:!0:!0:!1},$delayActivateLink:function(t,e){if(this.linkNeedsDelayActivate(t)){k.preventDefault(e);var n=k.settings.linkDelay||100;setTimeout(function(){k.setLocation(t.href)},n)}},isQueueable:function(t){return"writeHTML"!==t.command}}),k.availableTools["default"]=p,k.inherit(v,k.BaseTool),k.extend(v.prototype,{name:"tnt",endPLPhase:function(t){"aftertoolinit"===t&&this.initialize()},initialize:function(){k.notify("Test & Target: Initializing",1),this.initializeTargetPageParams(),this.load()},initializeTargetPageParams:function(){e.targetPageParams&&this.updateTargetPageParams(this.parseTargetPageParamsResult(e.targetPageParams())),this.updateTargetPageParams(this.settings.pageParams),this.setTargetPageParamsFunction()},load:function(){var t=this.getMboxURL(this.settings.mboxURL);this.settings.initTool!==!1?this.settings.loadSync?(k.loadScriptSync(t),this.onScriptLoaded()):(k.loadScript(t,k.bind(this.onScriptLoaded,this)),this.initializing=!0):this.initialized=!0},getMboxURL:function(t){var n=t;return k.isObject(t)&&(n="https:"===e.location.protocol?t.https:t.http),n.match(/^https?:/)?n:k.basePath()+n},onScriptLoaded:function(){k.notify("Test & Target: loaded.",1),this.flushQueue(),this.initialized=!0,this.initializing=!1},$addMbox:function(t,e,n){var i=n.mboxGoesAround,a=i+"{visibility: hidden;}",r=this.appendStyle(a);i in this.styleElements||(this.styleElements[i]=r),this.initialized?this.$addMBoxStep2(null,null,n):this.initializing&&this.queueCommand({command:"addMBoxStep2",arguments:[n]},t,e)},$addMBoxStep2:function(t,i,a){var r=this.generateID(),o=this;k.addEventHandler(e,"load",k.bind(function(){k.cssQuery(a.mboxGoesAround,function(t){var i=t[0];if(i){var s=n.createElement("div");s.id=r,i.parentNode.replaceChild(s,i),s.appendChild(i),e.mboxDefine(r,a.mboxName);var c=[a.mboxName];a.arguments&&(c=c.concat(a.arguments)),e.mboxUpdate.apply(null,c),o.reappearWhenCallComesBack(i,r,a.timeout,a)}})},this)),this.lastMboxID=r},$addTargetPageParams:function(t,e,n){this.updateTargetPageParams(n)},generateID:function(){var t="_sdsat_mbox_"+String(Math.random()).substring(2)+"_";return t},appendStyle:function(t){var e=n.getElementsByTagName("head")[0],i=n.createElement("style");return i.type="text/css",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(n.createTextNode(t)),e.appendChild(i),i},reappearWhenCallComesBack:function(t,e,n,i){function a(){var t=r.styleElements[i.mboxGoesAround];t&&(t.parentNode.removeChild(t),delete r.styleElements[i.mboxGoesAround])}var r=this;k.cssQuery('script[src*="omtrdc.net"]',function(t){var e=t[0];if(e){k.scriptOnLoad(e.src,e,function(){k.notify("Test & Target: request complete",1),a(),clearTimeout(i)});var i=setTimeout(function(){k.notify("Test & Target: bailing after "+n+"ms",1),a()},n)}else k.notify("Test & Target: failed to find T&T ajax call, bailing",1),a()})},updateTargetPageParams:function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[k.replace(n)]=k.replace(t[n]));k.extend(this.targetPageParamsStore,e)},getTargetPageParams:function(){return this.targetPageParamsStore},setTargetPageParamsFunction:function(){e.targetPageParams=k.bind(this.getTargetPageParams,this)},parseTargetPageParamsResult:function(t){var e=t;return k.isArray(t)&&(t=t.join("&")),k.isString(t)&&(e=k.parseQueryParams(t)),e}}),k.availableTools.tnt=v,k.inherit(m,k.BaseTool),k.extend(m.prototype,{initialize:function(){var t=this.settings;if(this.settings.initTool!==!1){var e=t.url;e="string"==typeof e?k.basePath()+e:k.isHttps()?e.https:e.http,k.loadScript(e,k.bind(this.onLoad,this)),this.initializing=!0}else this.initialized=!0},isQueueAvailable:function(){return!this.initialized},onLoad:function(){this.initialized=!0,this.initializing=!1,this.settings.initialBeacon&&this.settings.initialBeacon(),this.flushQueue()},endPLPhase:function(t){var e=this.settings.loadOn;t===e&&(k.notify(this.name+": Initializing at "+t,1),this.initialize())},$fire:function(t,e,n){return this.initializing?void this.queueCommand({command:"fire",arguments:[n]},t,e):void n.call(this.settings,t,e)}}),k.availableTools.am=m,k.availableTools.adlens=m,k.ecommerce={addItem:function(){var t=[].slice.call(arguments);k.onEvent({type:"ecommerce.additem",target:t})},addTrans:function(){var t=[].slice.call(arguments);k.data.saleData.sale={orderId:t[0],revenue:t[2]},k.onEvent({type:"ecommerce.addtrans",target:t})},trackTrans:function(){k.onEvent({type:"ecommerce.tracktrans",target:[]})}},_satellite.init({tools:{"1875dbe29f7bb9ab238fc7489edde34c":{engine:"sc",loadOn:"pagebottom",account:"ncomauth",euCookie:!1,sCodeURL:"https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/353f197638abe79a7d2dc7a7fd522d075d11521d/s-code-contents-b5fb8c32b9f61016251e19c1d53af49ce5a6c2de.js",initVars:{charSet:"UTF-8",currencyCode:"USD",trackingServer:"metrics.nintendo.com",trackingServerSecure:"smetrics.nintendo.com",pageName:"%Page Name%",channel:"oauth",trackInlineStats:!0,trackDownloadLinks:!0,linkDownloadFileTypes:"avi,css,csv,doc,docx,eps,exe,jpg,js,m4v,mov,mp3,pdf,png,ppt,pptx,rar,svg,tab,txt,vsd,vxd,wav,wma,wmv,xls,xlsx,xml,zip",trackExternalLinks:!0,linkInternalFilters:"javascript:,mailto:,tel:",linkLeaveQueryString:!1,dynamicVariablePrefix:"D="}}},pageLoadRules:[],rules:[],directCallRules:[],settings:{trackInternalLinks:!0,libraryName:"satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8",isStaging:!1,allowGATTcalls:!1,downloadExtensions:/\.(?:doc|docx|eps|jpg|png|svg|xls|ppt|pptx|pdf|xlsx|tab|csv|zip|txt|vsd|vxd|xml|js|css|rar|exe|wma|mov|avi|wmv|mp3|wav|m4v)($|\&|\?)/i,notifications:!1,utilVisible:!1,domainList:["nintendo.net"],scriptDir:"353f197638abe79a7d2dc7a7fd522d075d11521d/scripts/",euCookieName:"smetrics.nintendo.com",tagTimeout:3e3},data:{URI:n.location.pathname+n.location.search,browser:{},cartItems:[],revenue:"",host:{http:"assets.adobedtm.com",https:"assets.adobedtm.com"}},dataElements:{"Custom URL":{jsVariable:"window.location.href.split('?')[0]",storeLength:"pageview"},"Page Name":{customJS:function(){var t=n.createElement("a");return t.href=n.location,"oauth"+t.pathname.replace(/\//g,":")},"default":"oauth:unknown",storeLength:"pageview"}},appVersion:"4BD",buildDate:"2014-11-19 00:52:36 UTC",publishDate:"2014-11-19 00:51:44 UTC"})}(window,document); \ No newline at end of file +! function(e, n, i) { + function a() { + k.addEventHandler(e, "orientationchange", a.orientationChange) + } + + function r() { + this.rules = k.filter(k.rules, function(t) { + return "elementexists" === t.event + }) + } + + function o() { + this.rules = k.filter(k.rules, function(t) { + return "videoplayed" === t.event.substring(0, 11) + }), this.eventHandler = k.bind(this.onUpdateTime, this) + } + + function s() { + var t = this.eventRegex = /^hover\(([0-9]+)\)$/, + e = this.rules = []; + k.each(k.rules, function(n) { + var i = n.event.match(t); + i && e.push([Number(n.event.match(t)[1]), n.selector]) + }) + } + + function c(t) { + k.domReady(k.bind(function() { + this.twttr = t || e.twttr, this.initialize() + }, this)) + } + + function u(t) { + this.delay = 250, this.FB = t, k.domReady(k.bind(function() { + k.poll(k.bind(this.initialize, this), this.delay, 8) + }, this)) + } + + function l(t) { + t = t || k.rules, this.rules = k.filter(t, function(t) { + return "inview" === t.event + }), this.elements = [], this.eventHandler = k.bind(this.track, this), k.addEventHandler(e, "scroll", this.eventHandler), k.addEventHandler(e, "load", this.eventHandler) + } + + function d(t) { + k.BaseTool.call(this, t), this.name = t.name || "VisitorID", this.initialize() + } + + function f(t) { + k.BaseTool.call(this, t) + } + + function h(t) { + k.BaseTool.call(this, t) + } + + function g(t) { + k.BaseTool.call(this, t), this.varBindings = {}, this.events = [], this.products = [], this.customSetupFuns = [] + } + + function p() { + k.BaseTool.call(this), this.asyncScriptCallbackQueue = [], this.argsForBlockingScripts = [] + } + + function v(t) { + k.BaseTool.call(this, t), this.styleElements = {}, this.targetPageParamsStore = {} + } + + function m(t) { + k.BaseTool.call(this, t), this.name = t.name || "Basic" + } + var y = Object.prototype.toString, + b = e._satellite && e._satellite.override, + k = { + $data: function(t, e, n) { + var a = "__satellite__", + r = k.dataCache, + o = t[a]; + o || (o = t[a] = k.uuid++); + var s = r[o]; + return s || (s = r[o] = {}), n === i ? s[e] : void(s[e] = n) + }, + uuid: 1, + dataCache: {}, + keys: function(t) { + var e = []; + for (var n in t) e.push(n); + return e + }, + values: function(t) { + var e = []; + for (var n in t) e.push(t[n]); + return e + }, + isArray: Array.isArray || function(t) { + return "[object Array]" === y.apply(t) + }, + isObject: function(t) { + return null != t && !k.isArray(t) && "object" == typeof t + }, + isString: function(t) { + return "string" == typeof t + }, + isNumber: function(t) { + return "[object Number]" === y.apply(t) && !k.isNaN(t) + }, + isNaN: function(t) { + return t !== t + }, + isRegex: function(t) { + return t instanceof RegExp + }, + isLinkTag: function(t) { + return !(!t || !t.nodeName || "a" !== t.nodeName.toLowerCase()) + }, + each: function(t, e, n) { + for (var i = 0, a = t.length; a > i; i++) e.call(n, t[i], i, t) + }, + map: function(t, e, n) { + for (var i = [], a = 0, r = t.length; r > a; a++) i.push(e.call(n, t[a], a, t)); + return i + }, + filter: function(t, e, n) { + for (var i = [], a = 0, r = t.length; r > a; a++) { + var o = t[a]; + e.call(n, o, a, t) && i.push(o) + } + return i + }, + any: function(t, e, n) { + for (var i = 0, a = t.length; a > i; i++) { + var r = t[i]; + if (e.call(n, r, i, t)) return !0 + } + return !1 + }, + every: function(t, e, n) { + for (var i = !0, a = 0, r = t.length; r > a; a++) { + var o = t[a]; + i = i && e.call(n, o, a, t) + } + return i + }, + contains: function(t, e) { + return -1 !== k.indexOf(t, e) + }, + indexOf: function(t, e) { + if (t.indexOf) return t.indexOf(e); + for (var n = t.length; n--;) + if (e === t[n]) return n; + return -1 + }, + find: function(t, e, n) { + for (var i = 0, a = t.length; a > i; i++) { + var r = t[i]; + if (e.call(n, r, i, t)) return r + } + return null + }, + textMatch: function(t, e) { + return "string" == typeof e ? t === e : e instanceof RegExp ? e.test(t) : !1 + }, + stringify: function(t, e) { + if (e = e || [], k.isObject(t)) { + if (k.contains(e, t)) return ""; + e.push(t) + } + if (k.isArray(t)) return "[" + k.map(t, function(t) { + return k.stringify(t, e) + }).join(",") + "]"; + if (k.isString(t)) return '"' + String(t) + '"'; + if (k.isObject(t)) { + var n = []; + for (var i in t) n.push(i + ": " + k.stringify(t[i], e)); + return "{" + n.join(", ") + "}" + } + return String(t) + }, + trim: function(t) { + return null == t ? null : t.trim ? t.trim() : t.replace(/^ */, "").replace(/ *$/, "") + }, + bind: function(t, e) { + return function() { + return t.apply(e, arguments) + } + }, + throttle: function(t, e) { + var n = null; + return function() { + var i = this, + a = arguments; + clearTimeout(n), n = setTimeout(function() { + t.apply(i, a) + }, e) + } + }, + domReady: function(t) { + function e(t) { + for (f = 1; t = a.shift();) t() + } + var i, a = [], + r = !1, + o = n, + s = o.documentElement, + c = s.doScroll, + u = "DOMContentLoaded", + l = "addEventListener", + d = "onreadystatechange", + f = /^loade|^c/.test(o.readyState); + return o[l] && o[l](u, i = function() { + o.removeEventListener(u, i, r), e() + }, r), c && o.attachEvent(d, i = function() { + /^c/.test(o.readyState) && (o.detachEvent(d, i), e()) + }), t = c ? function(e) { + self != top ? f ? e() : a.push(e) : function() { + try { + s.doScroll("left") + } catch (n) { + return setTimeout(function() { + t(e) + }, 50) + } + e() + }() + } : function(t) { + f ? t() : a.push(t) + } + }(), + loadScript: function(t, e) { + var i = n.createElement("script"); + k.scriptOnLoad(t, i, e), i.src = t, n.getElementsByTagName("head")[0].appendChild(i) + }, + scriptOnLoad: function(t, e, n) { + function i(t) { + t && k.logError(t), n && n(t) + } + "onload" in e ? (e.onload = function() { + i() + }, e.onerror = function() { + i(new Error("Failed to load script " + t)) + }) : "readyState" in e && (e.onreadystatechange = function() { + var t = e.readyState; + ("loaded" === t || "complete" === t) && (e.onreadystatechange = null, i()) + }) + }, + loadScriptOnce: function(t, e) { + k.loadedScriptRegistry[t] || k.loadScript(t, function(n) { + n || (k.loadedScriptRegistry[t] = !0), e && e(n) + }) + }, + loadedScriptRegistry: {}, + loadScriptSync: function(t) { + return k.domReadyFired ? void k.notify('Cannot load sync the "' + t + '" script after DOM Ready.', 1) : void n.write('') + }, + pushAsyncScript: function(t) { + k.tools["default"].pushAsyncScript(t) + }, + pushBlockingScript: function(t) { + k.tools["default"].pushBlockingScript(t) + }, + addEventHandler: e.addEventListener ? function(t, e, n) { + t.addEventListener(e, n, !1) + } : function(t, e, n) { + t.attachEvent("on" + e, n) + }, + preventDefault: e.addEventListener ? function(t) { + t.preventDefault() + } : function(t) { + t.returnValue = !1 + }, + stopPropagation: function(t) { + t.cancelBubble = !0, t.stopPropagation && t.stopPropagation() + }, + containsElement: function(t, e) { + return t.contains ? t.contains(e) : !!(16 & t.compareDocumentPosition(e)) + }, + matchesCss: function(t) { + function i(t, e) { + var n = e.tagName; + return n ? t.toLowerCase() === n.toLowerCase() : !1 + } + var a = t.matchesSelector || t.mozMatchesSelector || t.webkitMatchesSelector || t.oMatchesSelector || t.msMatchesSelector; + return a ? function(t, i) { + if (i === n || i === e) return !1; + try { + return a.call(i, t) + } catch (r) { + return !1 + } + } : t.querySelectorAll ? function(t, e) { + var n = e.parentNode; + if (!n) return !1; + if (t.match(/^[a-z]+$/i)) return i(t, e); + try { + for (var a = e.parentNode.querySelectorAll(t), r = a.length; r--;) + if (a[r] === e) return !0 + } catch (o) {} + return !1 + } : function(t, e) { + if (t.match(/^[a-z]+$/i)) return i(t, e); + try { + return k.Sizzle.matches(t, [e]).length > 0 + } catch (n) { + return !1 + } + } + }(n.documentElement), + cssQuery: function(t) { + return t.querySelectorAll ? function(e, n) { + var i; + try { + i = t.querySelectorAll(e) + } catch (a) { + i = [] + } + n(i) + } : function(t, e) { + if (k.Sizzle) { + var n; + try { + n = k.Sizzle(t) + } catch (i) { + n = [] + } + e(n) + } else k.sizzleQueue.push([t, e]) + } + }(n), + hasAttr: function(t, e) { + return t.hasAttribute ? t.hasAttribute(e) : t[e] !== i + }, + inherit: function(t, e) { + var n = function() {}; + n.prototype = e.prototype, t.prototype = new n, t.prototype.constructor = t + }, + extend: function(t, e) { + for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) + }, + toArray: function() { + try { + var t = Array.prototype.slice; + return t.call(n.documentElement.childNodes, 0)[0].nodeType, + function(e) { + return t.call(e, 0) + } + } catch (e) { + return function(t) { + for (var e = [], n = 0, i = t.length; i > n; n++) e.push(t[n]); + return e + } + } + }(), + equalsIgnoreCase: function(t, e) { + return null == t ? null == e : null == e ? !1 : String(t).toLowerCase() === String(e).toLowerCase() + }, + poll: function(t, e, n) { + function i() { + k.isNumber(n) && a++ >= n || t() || setTimeout(i, e) + } + var a = 0; + e = e || 1e3, i() + }, + escapeForHtml: function(t) { + return t ? t.replace(/\&/g, "&").replace(/\/g, ">").replace(/\"/g, """).replace(/\'/g, "'").replace(/\//g, "/") : t + } + }; + k.availableTools = {}, k.availableEventEmitters = [], k.fireOnceEvents = ["condition", "elementexists"], k.initEventEmitters = function() { + k.eventEmitters = k.map(k.availableEventEmitters, function(t) { + return new t + }) + }, k.eventEmitterBackgroundTasks = function() { + k.each(k.eventEmitters, function(t) { + "backgroundTasks" in t && t.backgroundTasks() + }) + }, k.initTools = function(t) { + var e = { + "default": new p + }, + n = k.settings.euCookieName || "sat_track"; + for (var i in t) { + var a, r, o; + if (a = t[i], a.euCookie) { + var s = "true" !== k.readCookie(n); + if (s) continue + } + if (r = k.availableTools[a.engine], !r) { + var c = []; + for (var u in k.availableTools) c.push(u); + throw new Error("No tool engine named " + a.engine + ", available: " + c.join(",") + ".") + } + o = new r(a), o.id = i, e[i] = o + } + return e + }, k.preprocessArguments = function(t, e, n, i) { + function a(t) { + return i && k.isString(t) ? t.toLowerCase() : t + } + + function r(t) { + var i = {}; + for (var s in t) + if (t.hasOwnProperty(s)) { + var c = t[s]; + i[s] = k.isObject(c) ? r(c) : k.isArray(c) ? o(c) : a(k.replace(c, e, n)) + } return i + } + + function o(t) { + for (var i = [], o = 0, s = t.length; s > o; o++) { + var c = t[o]; + k.isString(c) ? c = a(k.replace(c, e, n)) : c && c.constructor === Object && (c = r(c)), i.push(c) + } + return i + } + return t ? o(t, i) : t + }, k.execute = function(t, e, n, i) { + function a(a) { + var r = i[a || "default"]; + if (r) try { + r.triggerCommand(t, e, n) + } catch (o) { + k.logError(o) + } + } + if (!_satellite.settings.hideActivity) + if (i = i || k.tools, t.engine) { + var r = t.engine; + for (var o in i) { + var s = i[o]; + s.settings && s.settings.engine === r && a(o) + } + } else t.tool instanceof Array ? k.each(t.tool, function(t) { + a(t) + }) : a(t.tool) + }, k.notify = e.console ? function(t, e) { + if (k.settings.notifications) switch (e) { + case 1: + case 2: + case 3: + console.log("SATELLITE: " + t); + break; + case 4: + console.warn("SATELLITE: " + t); + break; + case 5: + console.error("SATELLITE: " + t); + break; + default: + console.log("SATELLITE: Notify called with incorrect priority.") + } + } : function() {}, k.cleanText = function(t) { + return null == t ? null : k.trim(t).replace(/\s{2,}/g, " ").replace(/[^\000-\177]*/g, "") + }, k.text = function(t) { + return t.textContent || t.innerText + }, k.specialProperties = { + text: k.text, + cleanText: function(t) { + return k.cleanText(k.text(t)) + } + }, k.getObjectProperty = function(t, e, n) { + for (var a, r = e.split("."), o = t, s = k.specialProperties, c = 0, u = r.length; u > c; c++) { + if (null == o) return i; + var l = r[c]; + if (n && "@" === l.charAt(0)) { + var d = l.slice(1); + o = s[d](o) + } else if (o.getAttribute && (a = l.match(/^getAttribute\((.+)\)$/))) { + var f = a[1]; + o = o.getAttribute(f) + } else o = o[l] + } + return o + }, k.getToolsByType = function(e) { + if (!e) throw new Error("Tool type is missing"); + var n = []; + for (t in k.tools) { + var i = k.tools[t]; + i.settings && i.settings.engine === e && n.push(i) + } + return n + }, k.setVar = function() { + var t = k.data.customVars; + if (null == t && (k.data.customVars = {}, t = k.data.customVars), "string" == typeof arguments[0]) { + var e = arguments[0]; + t[e] = arguments[1] + } else if (arguments[0]) { + var n = arguments[0]; + for (var i in n) t[i] = n[i] + } + }, k.dataElementSafe = function(t, e) { + if (arguments.length > 2) { + var n = arguments[2]; + "pageview" === e ? k.dataElementSafe.pageviewCache[t] = n : "session" === e ? k.setCookie("_sdsat_" + t, n) : "visitor" === e && k.setCookie("_sdsat_" + t, n, 730) + } else { + if ("pageview" === e) return k.dataElementSafe.pageviewCache[t]; + if ("session" === e || "visitor" === e) return k.readCookie("_sdsat_" + t) + } + }, k.dataElementSafe.pageviewCache = {}, k.realGetDataElement = function(t) { + var n; + return t.selector ? k.hasSelector && k.cssQuery(t.selector, function(e) { + if (e.length > 0) { + var i = e[0]; + "text" === t.property ? n = i.innerText || i.textContent : k.hasAttr(i, t.property) && (n = i[t.property] || i.getAttribute(t.property)) + } + }) : t.queryParam ? n = t.ignoreCase ? k.getQueryParamCaseInsensitive(t.queryParam) : k.getQueryParam(t.queryParam) : t.cookie ? n = k.readCookie(t.cookie) : t.jsVariable ? n = k.getObjectProperty(e, t.jsVariable) : t.customJS && (n = t.customJS()), n + }, k.getDataElement = function(t, e, n) { + n = n || k.dataElements[t]; + var a = k.realGetDataElement(n); + return a === i && n.storeLength ? a = k.dataElementSafe(t, n.storeLength) : a !== i && n.storeLength && k.dataElementSafe(t, n.storeLength, a), a !== i || e || (a = n["default"] || ""), n.forceLowerCase && (a = a.toLowerCase()), a + }, k.getVar = function(t, a, r) { + var o, s, c = k.data.customVars, + u = r ? r.target || r.srcElement : null, + l = { + URI: k.data.URI, + uri: k.data.URI, + protocol: n.location.protocol, + hostname: n.location.hostname + }; + if (k.dataElements && t in k.dataElements) return k.getDataElement(t); + if (s = l[t], s === i) + if ("this." === t.substring(0, 5)) t = t.slice(5), s = k.getObjectProperty(a, t, !0); + else if ("event." === t.substring(0, 6)) t = t.slice(6), s = k.getObjectProperty(r, t); + else if ("target." === t.substring(0, 7)) t = t.slice(7), s = k.getObjectProperty(u, t); + else if ("window." === t.substring(0, 7)) t = t.slice(7), s = k.getObjectProperty(e, t); + else if ("param." === t.substring(0, 6)) t = t.slice(6), s = k.getQueryParam(t); + else if (o = t.match(/^rand([0-9]+)$/)) { + var d = Number(o[1]), + f = (Math.random() * (Math.pow(10, d) - 1)).toFixed(0); + s = Array(d - f.length + 1).join("0") + f + } else s = k.getObjectProperty(c, t); + return s + }, k.getVars = function(t, e, n) { + var i = {}; + return k.each(t, function(t) { + i[t] = k.getVar(t, e, n) + }), i + }, k.replace = function(t, e, n) { + return "string" != typeof t ? t : t.replace(/%(.*?)%/g, function(t, i) { + var a = k.getVar(i, e, n); + return null == a ? t : a + }) + }, k.searchVariables = function(t, e, n) { + if (!t || 0 === t.length) return ""; + for (var i = [], a = 0, r = t.length; r > a; a++) { + var o = t[a], + s = k.getVar(o, e, n); + i.push(o + "=" + escape(s)) + } + return "?" + i.join("&") + }, k.fireRule = function(t, e, n) { + var i = t.trigger; + if (i) { + for (var a = 0, r = i.length; r > a; a++) { + var o = i[a]; + k.execute(o, e, n) + } + k.contains(k.fireOnceEvents, t.event) && (t.expired = !0) + } + }, k.isLinked = function(t) { + for (var e = t; e; e = e.parentNode) + if (k.isLinkTag(e)) return !0; + return !1 + }, k.firePageLoadEvent = function(t) { + for (var e = n.location, i = { + type: t, + target: e + }, a = k.pageLoadRules, r = a.length; r--;) { + var o = a[r]; + k.ruleMatches(o, i, e) && (k.notify('Rule "' + o.name + '" fired.', 1), k.fireRule(o, e, i), a.splice(r, 1)) + } + for (var s in k.tools) { + var c = k.tools[s]; + c.endPLPhase && c.endPLPhase(t) + } + }, k.track = function(t) { + t = t.replace(/^\s*/, "").replace(/\s*$/, ""); + for (var e = 0; e < k.directCallRules.length; e++) { + var n = k.directCallRules[e]; + if (n.name === t) return k.notify('Direct call Rule "' + t + '" fired.', 1), void k.fireRule(n, location, { + type: t + }) + } + k.notify('Direct call Rule "' + t + '" not found.', 1) + }, k.basePath = function() { + return k.data.host ? ("https:" === n.location.protocol ? "https://" + k.data.host.https : "http://" + k.data.host.http) + "/" : this.settings.basePath + }, k.setLocation = function(t) { + e.location = t + }, k.parseQueryParams = function(t) { + var e = function(t) { + var e = t; + try { + e = decodeURIComponent(t) + } catch (n) {} + return e + }; + if ("" === t || k.isString(t) === !1) return {}; + 0 === t.indexOf("?") && (t = t.substring(1)); + var n = {}, + i = t.split("&"); + return k.each(i, function(t) { + t = t.split("="), t[1] && (n[e(t[0])] = k.escapeForHtml(e(t[1]))) + }), n + }, k.getCaseSensitivityQueryParamsMap = function(t) { + var e = k.parseQueryParams(t), + n = {}; + for (var i in e) e.hasOwnProperty(i) && (n[i.toLowerCase()] = e[i]); + return { + normal: e, + caseInsensitive: n + } + }, k.QueryParams = k.getCaseSensitivityQueryParamsMap(e.location.search), k.getQueryParam = function(t) { + return k.QueryParams.normal[t] + }, k.getQueryParamCaseInsensitive = function(t) { + return k.QueryParams.caseInsensitive[t.toLowerCase()] + }, k.encodeObjectToURI = function(t) { + if (k.isObject(t) === !1) return ""; + var e = []; + for (var n in t) t.hasOwnProperty(n) && e.push(encodeURIComponent(n) + "=" + encodeURIComponent(t[n])); + return e.join("&") + }, k.readCookie = function(t) { + for (var e = t + "=", a = n.cookie.split(";"), r = 0; r < a.length; r++) { + for (var o = a[r]; + " " == o.charAt(0);) o = o.substring(1, o.length); + if (0 === o.indexOf(e)) return o.substring(e.length, o.length) + } + return i + }, k.setCookie = function(t, e, i) { + var a; + if (i) { + var r = new Date; + r.setTime(r.getTime() + 24 * i * 60 * 60 * 1e3), a = "; expires=" + r.toGMTString() + } else a = ""; + n.cookie = t + "=" + e + a + "; path=/" + }, k.removeCookie = function(t) { + k.setCookie(t, "", -1) + }, k.getElementProperty = function(t, e) { + if ("@" === e.charAt(0)) { + var n = k.specialProperties[e.substring(1)]; + if (n) return n(t) + } + return "innerText" === e ? k.text(t) : e in t ? t[e] : t.getAttribute ? t.getAttribute(e) : i + }, k.propertiesMatch = function(t, e) { + if (t) + for (var n in t) { + var i = t[n], + a = k.getElementProperty(e, n); + if ("string" == typeof i && i !== a) return !1; + if (i instanceof RegExp && !i.test(a)) return !1 + } + return !0 + }, k.ruleMatches = function(t, e, i, a) { + var r = (n.location, t.condition), + o = t.conditions, + s = t.property, + c = e.type, + u = t.value, + l = e.target || e.srcElement, + d = i === l; + if (t.event !== c) return !1; + if (t.isDefault && a > 0) return !1; + if (t.expired) return !1; + if ("inview" === c && e.inviewDelay !== t.inviewDelay) return !1; + if (!d && (t.bubbleFireIfParent === !1 || 0 !== a && t.bubbleFireIfChildFired === !1)) return !1; + if (t.selector && !k.matchesCss(t.selector, i)) return !1; + if (!k.propertiesMatch(s, i)) return !1; + if (null != u) + if ("string" == typeof u) { + if (u !== i.value) return !1 + } else if (!u.test(i.value)) return !1; + if (r) try { + if (!r.call(i, e, l)) return k.notify('Condition for rule "' + t.name + '" not met.', 1), !1 + } catch (f) { + return k.notify('Condition for rule "' + t.name + '" not met. Error: ' + f.message, 1), !1 + } + if (o) { + var h = k.find(o, function(n) { + try { + return !n.call(i, e, l) + } catch (a) { + return k.notify('Condition for rule "' + t.name + '" not met. Error: ' + a.message, 1), !0 + } + }); + if (h) return k.notify("Condition " + h.toString() + ' for rule "' + t.name + '" not met.', 1), !1 + } + return !0 + }, k.evtHandlers = {}, k.bindEvent = function(t, e) { + var n = k.evtHandlers; + n[t] || (n[t] = []), n[t].push(e) + }, k.whenEvent = k.bindEvent, k.unbindEvent = function(t, e) { + var n = k.evtHandlers; + if (n[t]) { + var i = k.indexOf(n[t], e); + n[t].splice(i, 1) + } + }, k.bindEventOnce = function(t, e) { + var n = function() { + k.unbindEvent(t, n), e.apply(null, arguments) + }; + k.bindEvent(t, n) + }, k.isVMLPoisoned = function(t) { + if (!t) return !1; + try { + t.nodeName + } catch (e) { + if ("Attribute only valid on v:image" === e.message) return !0 + } + return !1 + }, k.handleEvent = function(t) { + if (!k.$data(t, "eventProcessed")) { + var e = t.type.toLowerCase(), + n = t.target || t.srcElement, + i = 0, + a = k.rules, + r = (k.tools, k.evtHandlers[t.type]); + if (k.isVMLPoisoned(n)) return void k.notify("detected " + e + " on poisoned VML element, skipping.", 1); + r && k.each(r, function(e) { + e(t) + }); + var o = n && n.nodeName; + o ? k.notify("detected " + e + " on " + n.nodeName, 1) : k.notify("detected " + e, 1); + for (var s = n; s; s = s.parentNode) { + var c = !1; + if (k.each(a, function(e) { + k.ruleMatches(e, t, s, i) && (k.notify('Rule "' + e.name + '" fired.', 1), k.fireRule(e, s, t), i++, e.bubbleStop && (c = !0)) + }), c) break + } + k.$data(t, "eventProcessed", !0) + } + }, k.onEvent = n.querySelectorAll ? function(t) { + k.handleEvent(t) + } : function() { + var t = [], + e = function(e) { + e.selector ? t.push(e) : k.handleEvent(e) + }; + return e.pendingEvents = t, e + }(), k.fireEvent = function(t, e) { + k.onEvent({ + type: t, + target: e + }) + }, k.registerEvents = function(t, e) { + for (var n = e.length - 1; n >= 0; n--) { + var i = e[n]; + k.$data(t, i + ".tracked") || (k.addEventHandler(t, i, k.onEvent), k.$data(t, i + ".tracked", !0)) + } + }, k.registerEventsForTags = function(t, e) { + for (var i = t.length - 1; i >= 0; i--) + for (var a = t[i], r = n.getElementsByTagName(a), o = r.length - 1; o >= 0; o--) k.registerEvents(r[o], e) + }, k.setListeners = function() { + k.registerEvents(n, ["click", "submit"]) + }, k.setFormListeners = function() { + k.registerEventsForTags(["input", "select", "textarea", "button"], ["select", "change", "focus", "blur", "keypress"]) + }, k.setVideoListeners = function() { + k.registerEventsForTags(["video"], ["play", "pause", "ended", "volumechange", "stalled", "timeupdate", "loadeddata"]) + }, k.readStoredSetting = function(t) { + return e.localStorage ? (t = "sdsat_" + t, e.localStorage.getItem(t)) : null + }, k.loadStoredSettings = function() { + var t = k.readStoredSetting("debug"), + e = k.readStoredSetting("hide_activity"); + t && (k.settings.notifications = "true" === t), e && (k.settings.hideActivity = "true" === e) + }, k.isRuleActive = function(t, e) { + function n(t, e) { + return e = a(e, { + hour: t[h](), + minute: t[g]() + }), Math.floor(Math.abs((t.getTime() - e.getTime()) / 864e5)) + } + + function i(t, e) { + function n(t) { + return 12 * t[d]() + t[f]() + } + return Math.abs(n(t) - n(e)) + } + + function a(t, e) { + var n = new Date(t.getTime()); + for (var i in e) { + var a = e[i]; + switch (i) { + case "hour": + n[p](a); + break; + case "minute": + n[v](a); + break; + case "date": + n[m](a) + } + } + return n + } + + function r(t, e) { + var n = t[h](), + i = t[g](), + a = e[h](), + r = e[g](); + return 60 * n + i > 60 * a + r + } + + function o(t, e) { + var n = t[h](), + i = t[g](), + a = e[h](), + r = e[g](); + return 60 * a + r > 60 * n + i + } + var s = t.schedule; + if (!s) return !0; + var c = s.utc, + u = c ? "getUTCDate" : "getDate", + l = c ? "getUTCDay" : "getDay", + d = c ? "getUTCFullYear" : "getFullYear", + f = c ? "getUTCMonth" : "getMonth", + h = c ? "getUTCHours" : "getHours", + g = c ? "getUTCMinutes" : "getMinutes", + p = c ? "setUTCHours" : "setHours", + v = c ? "setUTCMinutes" : "setMinutes", + m = c ? "setUTCDate" : "setDate"; + if (e = e || new Date, s.repeat) { + if (r(s.start, e)) return !1; + if (o(s.end, e)) return !1; + if (e < s.start) return !1; + if (s.endRepeat && e >= s.endRepeat) return !1; + if ("daily" === s.repeat) { + if (s.repeatEvery) { + var y = n(s.start, e); + if (y % s.repeatEvery !== 0) return !1 + } + } else if ("weekly" === s.repeat) { + if (s.days) { + if (!k.contains(s.days, e[l]())) return !1 + } else if (s.start[l]() !== e[l]()) return !1; + if (s.repeatEvery) { + var b = n(s.start, e); + if (b % (7 * s.repeatEvery) !== 0) return !1 + } + } else if ("monthly" === s.repeat) { + if (s.repeatEvery) { + var S = i(s.start, e); + if (S % s.repeatEvery !== 0) return !1 + } + if (s.nthWeek && s.mthDay) { + if (s.mthDay !== e[l]()) return !1; + var E = Math.floor((e[u]() - e[l]() + 1) / 7); + if (s.nthWeek !== E) return !1 + } else if (s.start[u]() !== e[u]()) return !1 + } else if ("yearly" === s.repeat) { + if (s.start[f]() !== e[f]()) return !1; + if (s.start[u]() !== e[u]()) return !1; + if (s.repeatEvery) { + var b = Math.abs(s.start[d]() - e[d]()); + if (b % s.repeatEvery !== 0) return !1 + } + } + } else { + if (s.start > e) return !1; + if (s.end < e) return !1 + } + return !0 + }, k.isOutboundLink = function(t) { + if (!t.getAttribute("href")) return !1; + var e = t.hostname, + n = (t.href, t.protocol); + if ("http:" !== n && "https:" !== n) return !1; + var i = k.any(k.settings.domainList, function(t) { + return k.isSubdomainOf(e, t) + }); + return i ? !1 : e !== location.hostname + }, k.isLinkerLink = function(t) { + return t.getAttribute && t.getAttribute("href") ? k.hasMultipleDomains() && t.hostname != location.hostname && !t.href.match(/^javascript/i) && !k.isOutboundLink(t) : !1 + }, k.isSubdomainOf = function(t, e) { + if (t === e) return !0; + var n = t.length - e.length; + return n > 0 ? k.equalsIgnoreCase(t.substring(n), e) : !1 + }, k.getVisitorId = function() { + var t = k.getToolsByType("visitor_id"); + return 0 === t.length ? null : t[0].getInstance() + }, k.filterRules = function() { + function t(t) { + return k.ruleInScope(t, e) && k.isRuleActive(t) ? !0 : !1 + } + var e = { + hostname: location.hostname, + protocol: location.protocol, + URI: k.data.URI + }; + k.rules = k.filter(k.rules, t), k.pageLoadRules = k.filter(k.pageLoadRules, t) + }, k.ruleInScope = function(t, e) { + function n(t, e) { + function n(t) { + return e.match(t) + } + var a = t.include, + r = t.exclude; + if (a && i(a, e)) return !0; + if (r) { + if (k.isString(r) && r === e) return !0; + if (k.isArray(r) && k.any(r, n)) return !0; + if (k.isRegex(r) && n(r)) return !0 + } + return !1 + } + + function i(t, e) { + function n(t) { + return e.match(t) + } + return k.isString(t) && t !== e ? !0 : k.isArray(t) && !k.any(t, n) ? !0 : k.isRegex(t) && !n(t) ? !0 : !1 + } + var a = t.scope; + if (!a) return !0; + var r = a.URI, + o = a.subdomains, + s = a.domains, + c = a.protocols; + return r && n(r, e.URI) ? !1 : o && n(o, e.hostname) ? !1 : s && i(s, e.hostname) ? !1 : c && i(c, e.protocol) ? !1 : !0 + }, k.backgroundTasks = function() { + +new Date; + k.setFormListeners(), k.setVideoListeners(), k.loadStoredSettings(), k.registerNewElementsForDynamicRules(), k.eventEmitterBackgroundTasks(); + new Date + }, k.registerNewElementsForDynamicRules = function() { + function t(e, n) { + var i = t.cache[e]; + return i ? n(i) : void k.cssQuery(e, function(i) { + t.cache[e] = i, n(i) + }) + } + t.cache = {}, k.each(k.dynamicRules, function(e) { + t(e.selector, function(t) { + k.each(t, function(t) { + k.$data(t, "dynamicRules.seen") || (k.$data(t, "dynamicRules.seen", !0), k.propertiesMatch(e.property, t) && k.registerEvents(t, [e.event])) + }) + }) + }) + }, k.ensureCSSSelector = function() { + return n.querySelectorAll ? void(k.hasSelector = !0) : (k.loadingSizzle = !0, k.sizzleQueue = [], void k.loadScript(k.basePath() + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/selector.js", function() { + if (!k.Sizzle) return void k.logError(new Error("https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/Failed to load selector.js")); + var t = k.onEvent.pendingEvents; + k.each(t, function(t) { + k.handleEvent(t) + }, this), k.onEvent = k.handleEvent, k.hasSelector = !0, delete k.loadingSizzle, k.each(k.sizzleQueue, function(t) { + k.cssQuery(t[0], t[1]) + }), delete k.sizzleQueue + })) + }, k.errors = [], k.logError = function(t) { + k.errors.push(t), k.notify(t.name + " - " + t.message, 5) + }, k.pageBottom = function() { + k.pageBottomFired = !0, k.firePageLoadEvent("pagebottom") + }, k.stagingLibraryOverride = function() { + var t = "true" === k.readStoredSetting("stagingLibrary"); + if (t) { + for (var e, i, a, r = n.getElementsByTagName("script"), o = /^(.*)satelliteLib-(.*)\.js$/, s = /^(.*)satelliteLib-(.*)-staging\.js$/, c = 0, u = r.length; u > c && (a = r[c].getAttribute("src"), !a || (e || (e = a.match(o)), i || (i = a.match(s)), !i)); c++); + if (e && !i) { + var l = e[1] + "satelliteLib-" + e[2] + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/-staging.js"; + return n.write(''), !0 + } + } + return !1 + }, k.checkAsyncInclude = function() { + e.satellite_asyncLoad && k.notify('You may be using the async installation of Satellite. In-page HTML and the "pagebottom" event will not work. Please update your Satellite installation for these features.', 5) + }, k.hasMultipleDomains = function() { + return k.settings.domainList.length > 1 + }, k.handleOverrides = function() { + if (b) + for (var t in b) b.hasOwnProperty(t) && (k.data[t] = b[t]) + }, k.privacyManagerParams = function() { + var t = {}; + k.extend(t, k.settings.privacyManagement); + var e = []; + for (var n in k.tools) { + var i = k.tools[n], + a = i.settings; + a && "sc" === a.engine && e.push(i) + } + var r = k.filter(k.map(e, function(t) { + return t.getTrackingServer() + }), function(t) { + return null != t + }); + t.adobeAnalyticsTrackingServers = r; + for (var o = ["bannerText", "headline", "introductoryText", "customCSS"], s = 0; s < o.length; s++) { + var c = o[s], + u = t[c]; + if (u) + if ("text" === u.type) t[c] = u.value; + else { + if ("data" !== u.type) throw new Error("Invalid type: " + u.type); + t[c] = k.getVar(u.value) + } + } + return t + }, k.prepareLoadPrivacyManager = function() { + function t(t) { + function e() { + r++, r === n.length && (i(), clearTimeout(o), t()) + } + + function i() { + k.each(n, function(t) { + k.unbindEvent(t.id + ".load", e) + }) + } + + function a() { + i(), t() + } + var r = 0; + k.each(n, function(t) { + k.bindEvent(t.id + ".load", e) + }); + var o = setTimeout(a, 5e3) + } + var n = k.filter(k.values(k.tools), function(t) { + return t.settings && "sc" === t.settings.engine + }); + 0 === n.length ? k.addEventHandler(e, "load", k.loadPrivacyManager) : t(k.loadPrivacyManager) + }, k.loadPrivacyManager = function() { + var t = k.basePath() + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/privacy_manager.js"; + k.loadScript(t, function() { + var t = k.privacyManager; + t.configure(k.privacyManagerParams()), t.openIfRequired() + }) + }, k.init = function(t) { + if (!k.stagingLibraryOverride()) { + k.configurationSettings = t; + var n = t.tools; + delete t.tools; + for (var a in t) k[a] = t[a]; + k.data.customVars === i && (k.data.customVars = {}), k.data.queryParams = k.QueryParams.normal, k.handleOverrides(), k.detectBrowserInfo(), k.trackVisitorInfo && k.trackVisitorInfo(), k.loadStoredSettings(), k.checkAsyncInclude(), k.ensureCSSSelector(), k.filterRules(), k.dynamicRules = k.filter(k.rules, function(t) { + return t.eventHandlerOnElement + }), k.tools = k.initTools(n), k.initEventEmitters(), k.firePageLoadEvent("aftertoolinit"), k.settings.forceLowerCase && (k.data.URI = k.data.URI.toLowerCase()), k.settings.privacyManagement && k.prepareLoadPrivacyManager(), k.hasSelector && k.domReady(k.eventEmitterBackgroundTasks), k.setListeners(), k.domReady(function() { + k.poll(function() { + k.backgroundTasks() + }, k.settings.recheckEvery || 3e3) + }), k.domReady(function() { + k.domReadyFired = !0, k.pageBottomFired || k.pageBottom(), k.firePageLoadEvent("domready") + }), k.addEventHandler(e, "load", function() { + k.firePageLoadEvent("windowload") + }), k.firePageLoadEvent("pagetop") + } + }, k.pageLoadPhases = ["aftertoolinit", "pagetop", "pagebottom", "domready", "windowload"], k.loadEventBefore = function(t, e) { + return k.indexOf(k.pageLoadPhases, t) <= k.indexOf(k.pageLoadPhases, e) + }, k.flushPendingCalls = function(t) { + t.pending && (k.each(t.pending, function(e) { + var n = e[0], + i = e[1], + a = e[2], + r = e[3]; + n in t ? t[n].apply(t, [i, a].concat(r)) : t.emit ? t.emit(n, i, a, r) : k.notify("Failed to trigger " + n + " for tool " + t.id, 1) + }), delete t.pending) + }, k.setDebug = function(t) { + e.localStorage && e.localStorage.setItem("sdsat_debug", t) + }, k.detectBrowserInfo = function() { + function t(t) { + return function(e) { + for (var n in t) { + var i = t[n], + a = i.test(e); + if (a) return n + } + return "Unknown" + } + } + var e = t({ + OmniWeb: /OmniWeb/, + "Opera Mini": /Opera Mini/, + "Opera Mobile": /Opera Mobi/, + Opera: /Opera/, + "Mobile Safari": /Mobile(\/[0-9A-z]+)? Safari/, + Chrome: /Chrome/, + Firefox: /Firefox/, + "IE Mobile": /IEMobile/, + IE: /MSIE|Trident/, + Safari: /Safari/ + }), + n = t({ + iOS: /iPhone|iPad|iPod/, + Blackberry: /BlackBerry/, + "Symbian OS": /SymbOS/, + Maemo: /Maemo/, + Android: /Android [0-9\.]+;/, + Linux: / Linux /, + Unix: /FreeBSD|OpenBSD|CrOS/, + Windows: /[\( ]Windows /, + MacOS: /Macintosh;/ + }), + i = t({ + iPhone: /iPhone/, + iPad: /iPad/, + iPod: /iPod/, + Nokia: /SymbOS|Maemo/, + "Windows Phone": /IEMobile/, + Blackberry: /BlackBerry/, + Android: /Android [0-9\.]+;/, + Desktop: /.*/ + }), + a = navigator.userAgent; + k.browserInfo = { + browser: e(a), + os: n(a), + deviceType: i(a) + } + }, k.isHttps = function() { + return "https:" == n.location.protocol + }, k.BaseTool = function(t) { + this.settings = t || {}, this.forceLowerCase = k.settings.forceLowerCase, "forceLowerCase" in this.settings && (this.forceLowerCase = this.settings.forceLowerCase) + }, k.BaseTool.prototype = { + triggerCommand: function(t, e, n) { + var i = this.settings || {}; + if (this.initialize && this.isQueueAvailable() && this.isQueueable(t) && n && k.loadEventBefore(n.type, i.loadOn)) return void this.queueCommand(t, e, n); + var a = k.preprocessArguments(t.arguments, e, n, this.forceLowerCase), + r = t.command, + o = this["$" + r]; + o ? o.apply(this, [e, n].concat(a)) : this.$missing$ ? this.$missing$(r, e, n, a) : k.notify("Failed to trigger " + r + " for tool " + this.id, 1) + }, + endPLPhase: function() {}, + isQueueable: function(t) { + return "cancelToolInit" !== t.command + }, + isQueueAvailable: function() { + return !this.initialized && !this.initializing + }, + flushQueue: function() { + this.pending && (k.each(this.pending, function(t) { + this.triggerCommand.apply(this, t) + }, this), this.pending = []) + }, + queueCommand: function(t, e, n) { + this.pending || (this.pending = []), this.pending.push([t, e, n]) + }, + $cancelToolInit: function() { + this._cancelToolInit = !0 + } + }, e._satellite = k, a.orientationChange = function(t) { + var n = 0 === e.orientation ? "portrait" : "landscape"; + t.orientation = n, k.onEvent(t) + }, k.availableEventEmitters.push(a), r.prototype.backgroundTasks = function() { + k.each(this.rules, function(t) { + k.cssQuery(t.selector, function(t) { + if (t.length > 0) { + var e = t[0]; + if (k.$data(e, "elementexists.seen")) return; + k.$data(e, "elementexists.seen", !0), k.onEvent({ + type: "elementexists", + target: e + }) + } + }) + }) + }, k.availableEventEmitters.push(r), o.prototype = { + backgroundTasks: function() { + var t = this.eventHandler; + k.each(this.rules, function(e) { + k.cssQuery(e.selector || "video", function(e) { + k.each(e, function(e) { + k.$data(e, "videoplayed.tracked") || (k.addEventHandler(e, "timeupdate", k.throttle(t, 100)), k.$data(e, "videoplayed.tracked", !0)) + }) + }) + }) + }, + evalRule: function(t, e) { + var n = e.event, + i = t.seekable, + a = i.start(0), + r = i.end(0), + o = t.currentTime, + s = e.event.match(/^videoplayed\(([0-9]+)([s%])\)$/); + if (s) { + var c = s[2], + u = Number(s[1]), + l = "%" === c ? function() { + return 100 * (o - a) / (r - a) >= u + } : function() { + return o - a >= u + }; + !k.$data(t, n) && l() && (k.$data(t, n, !0), k.onEvent({ + type: n, + target: t + })) + } + }, + onUpdateTime: function(t) { + var e = this.rules, + n = t.target; + if (n.seekable && 0 !== n.seekable.length) + for (var i = 0, a = e.length; a > i; i++) this.evalRule(n, e[i]) + } + }, k.availableEventEmitters.push(o), s.prototype = { + backgroundTasks: function() { + var t = this; + k.each(this.rules, function(e) { + var n = e[1], + i = e[0]; + k.cssQuery(n, function(e) { + k.each(e, function(e) { + t.trackElement(e, i) + }) + }) + }, this) + }, + trackElement: function(t, e) { + var n = this, + i = k.$data(t, "hover.delays"); + i ? k.contains(i, e) || i.push(e) : (k.addEventHandler(t, "mouseover", function(e) { + n.onMouseOver(e, t) + }), k.addEventHandler(t, "mouseout", function(e) { + n.onMouseOut(e, t) + }), k.$data(t, "hover.delays", [e])) + }, + onMouseOver: function(t, e) { + var n = t.target || t.srcElement, + i = t.relatedTarget || t.fromElement, + a = (e === n || k.containsElement(e, n)) && !k.containsElement(e, i); + a && this.onMouseEnter(e) + }, + onMouseEnter: function(t) { + var e = k.$data(t, "hover.delays"), + n = k.map(e, function(e) { + return setTimeout(function() { + k.onEvent({ + type: "hover(" + e + ")", + target: t + }) + }, e) + }); + k.$data(t, "hover.delayTimers", n) + }, + onMouseOut: function(t, e) { + var n = t.target || t.srcElement, + i = t.relatedTarget || t.toElement, + a = (e === n || k.containsElement(e, n)) && !k.containsElement(e, i); + a && this.onMouseLeave(e) + }, + onMouseLeave: function(t) { + var e = k.$data(t, "hover.delayTimers"); + e && k.each(e, function(t) { + clearTimeout(t) + }) + } + }, k.availableEventEmitters.push(s), c.prototype = { + initialize: function() { + var t = this.twttr; + t && "function" == typeof t.ready && t.ready(k.bind(this.bind, this)) + }, + bind: function() { + this.twttr.events.bind("tweet", function(t) { + t && (k.notify("tracking a tweet button", 1), k.onEvent({ + type: "twitter.tweet", + target: n + })) + }) + } + }, k.availableEventEmitters.push(c), u.prototype = { + initialize: function() { + return this.FB = this.FB || e.FB, this.FB && this.FB.Event && this.FB.Event.subscribe ? (this.bind(), !0) : void 0 + }, + bind: function() { + this.FB.Event.subscribe("edge.create", function() { + k.notify("tracking a facebook like", 1), k.onEvent({ + type: "facebook.like", + target: n + }) + }), this.FB.Event.subscribe("edge.remove", function() { + k.notify("tracking a facebook unlike", 1), k.onEvent({ + type: "facebook.unlike", + target: n + }) + }), this.FB.Event.subscribe("message.send", function() { + k.notify("tracking a facebook share", 1), k.onEvent({ + type: "facebook.send", + target: n + }) + }) + } + }, k.availableEventEmitters.push(u), l.offset = function(t) { + var i; + try { + i = t.getBoundingClientRect() + } catch (a) {} + var r = n, + o = r.documentElement, + s = r.body, + c = e, + u = o.clientTop || s.clientTop || 0, + l = o.clientLeft || s.clientLeft || 0, + d = c.pageYOffset || o.scrollTop || s.scrollTop, + f = c.pageXOffset || o.scrollLeft || s.scrollLeft, + h = i.top + d - u, + g = i.left + f - l; + return { + top: h, + left: g + } + }, l.getViewportHeight = function() { + var t = e.innerHeight, + i = n.compatMode; + return i && (t = "CSS1Compat" == i ? n.documentElement.clientHeight : n.body.clientHeight), t + }, l.getScrollTop = function() { + return n.documentElement.scrollTop ? n.documentElement.scrollTop : n.body.scrollTop + }, l.prototype = { + backgroundTasks: function() { + var t = this.elements; + k.each(this.rules, function(e) { + k.cssQuery(e.selector, function(n) { + var i = 0; + k.each(n, function(e) { + k.contains(t, e) || (t.push(e), i++) + }), i && k.notify(e.selector + " added " + i + " elements.", 1) + }) + }), this.track() + }, + elementIsInView: function(t) { + var e = l.getViewportHeight(), + n = l.getScrollTop(), + i = l.offset(t).top, + a = t.offsetHeight; + return !(n > i + a || i > n + e) + }, + checkInView: function(t, e) { + var n = k.$data(t, "inview"); + if (this.elementIsInView(t)) { + n || k.$data(t, "inview", !0); + var i = this; + this.processRules(t, function(n, a, r) { + if (e || !n.inviewDelay) k.$data(t, a, !0), k.onEvent({ + type: "inview", + target: t, + inviewDelay: n.inviewDelay + }); + else if (n.inviewDelay) { + var o = k.$data(t, r); + o && clearTimeout(o), o = setTimeout(function() { + i.checkInView(t, !0) + }, n.inviewDelay), k.$data(t, r, o) + } + }) + } else n && k.$data(t, "inview", !1), this.processRules(t, function(e, n, i) { + var a = k.$data(t, i); + a && clearTimeout(a) + }) + }, + track: function() { + k.each(this.elements, function(t) { + this.checkInView(t) + }, this) + }, + processRules: function(t, e) { + k.each(this.rules, function(n, i) { + var a = n.inviewDelay ? "viewed_" + n.inviewDelay : "viewed", + r = "inview_timeout_id_" + i; + k.$data(t, a) || k.matchesCss(n.selector, t) && e(n, a, r) + }) + } + }, k.availableEventEmitters.push(l), k.extend(d.prototype, { + initialize: function() { + var t, e = this.settings; + k.notify("Visitor ID: Initializing tool", 1), t = this.createInstance(e.mcOrgId, e.namespace, e.initVars), null !== t && (e.customerIDs && this.applyCustomerIDs(t, e.customerIDs), e.autoRequest && t.getMarketingCloudVisitorID(), this.instance = t) + }, + createInstance: function(t, e, n) { + if (!k.isString(t)) return k.notify('Visitor ID: Cannot create instance using mcOrgId: "' + t + '"', 4), null; + k.notify('Visitor ID: Create instance using mcOrgId: "' + t + '"', 1); + var i = new Visitor(t, e); + return this.applyInitVars(i, n), i + }, + getInstance: function() { + return this.instance + }, + applyInitVars: function(t, e) { + k.isObject(e) !== !1 && (e = this.parseValues(e), k.extend(t, e), k.notify("Visitor ID: Set variables: " + k.stringify(e), 1)) + }, + applyCustomerIDs: function(t, e) { + k.isObject(e) !== !1 && (e = this.parseValues(e), t.setCustomerIDs(e), k.notify("Visitor ID: Set Customer IDs: " + k.stringify(e), 1)) + }, + parseValues: function(t) { + var e = {}; + for (var n in t) t.hasOwnProperty(n) && (e[n] = k.replace(t[n])); + return e + } + }), k.availableTools.visitor_id = d, k.inherit(f, k.BaseTool), k.extend(f.prototype, { + name: "GA", + initialize: function() { + var t = this.settings, + n = e._gaq, + i = t.initCommands || [], + a = t.customInit; + if (n || (_gaq = []), this.isSuppressed()) k.notify("GA: page code not loaded(suppressed).", 1); + else { + if (!n && !f.scriptLoaded) { + var r = k.isHttps(), + o = (r ? "https://ssl" : "http://www") + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/.google-analytics.com/ga.js"; + t.url && (o = r ? t.url.https : t.url.http), k.loadScript(o), f.scriptLoaded = !0, k.notify("GA: page code loaded.", 1) + } { + var s = (t.domain, t.trackerName), + c = S.allowLinker(), + u = t.account; + k.settings.domainList || [] + } + _gaq.push([this.cmd("setAccount"), u]), c && _gaq.push([this.cmd("setAllowLinker"), c]), _gaq.push([this.cmd("setDomainName"), S.cookieDomain()]), k.each(i, function(t) { + var e = [this.cmd(t[0])].concat(t.slice(1)); + _gaq.push(e) + }, this), a && (this.suppressInitialPageView = !1 === a(_gaq, s)), t.pageName && this.$overrideInitialPageView(null, null, t.pageName) + } + this.initialized = !0, k.fireEvent(this.id + ".configure", _gaq, s) + }, + isSuppressed: function() { + return this._cancelToolInit || this.settings.initTool === !1 + }, + tracker: function() { + return this.settings.trackerName + }, + cmd: function(t) { + var e = this.tracker(); + return e ? e + "._" + t : "_" + t + }, + $overrideInitialPageView: function(t, e, n) { + this.urlOverride = n + }, + trackInitialPageView: function() { + if (!this.isSuppressed() && !this.suppressInitialPageView) + if (this.urlOverride) { + var t = k.preprocessArguments([this.urlOverride], location, null, this.forceLowerCase); + this.$missing$("trackPageview", null, null, t) + } else this.$missing$("trackPageview") + }, + endPLPhase: function(t) { + var e = this.settings.loadOn; + t === e && (k.notify("GA: Initializing at " + t, 1), this.initialize(), this.flushQueue(), this.trackInitialPageView()) + }, + call: function(t, e, n, i) { + if (!this._cancelToolInit) { + var a = (this.settings, this.tracker()), + r = this.cmd(t), + i = i ? [r].concat(i) : [r]; + _gaq.push(i), a ? k.notify("GA: sent command " + t + " to tracker " + a + (i.length > 1 ? " with parameters [" + i.slice(1).join(", ") + "]" : "") + ".", 1) : k.notify("GA: sent command " + t + (i.length > 1 ? " with parameters [" + i.slice(1).join(", ") + "]" : "") + ".", 1) + } + }, + $missing$: function(t, e, n, i) { + this.call(t, e, n, i) + }, + $postTransaction: function(t, n, i) { + var a = k.data.customVars.transaction = e[i]; + this.call("addTrans", t, n, [a.orderID, a.affiliation, a.total, a.tax, a.shipping, a.city, a.state, a.country]), k.each(a.items, function(e) { + this.call("addItem", t, n, [e.orderID, e.sku, e.product, e.category, e.unitPrice, e.quantity]) + }, this), this.call("trackTrans", t, n) + }, + delayLink: function(t, e) { + var n = this; + if (S.allowLinker() && t.hostname.match(this.settings.linkerDomains) && !k.isSubdomainOf(t.hostname, location.hostname)) { + k.preventDefault(e); + var i = k.settings.linkDelay || 100; + setTimeout(function() { + n.call("link", t, e, [t.href]) + }, i) + } + }, + popupLink: function(t, n) { + if (e._gat) { + k.preventDefault(n); + var i = this.settings.account, + a = e._gat._createTracker(i), + r = a._getLinkerUrl(t.href); + e.open(r) + } + }, + $link: function(t, e) { + "_blank" === t.getAttribute("target") ? this.popupLink(t, e) : this.delayLink(t, e) + }, + $trackEvent: function(t, e) { + var n = Array.prototype.slice.call(arguments, 2); + if (n.length >= 4 && null != n[3]) { + var i = parseInt(n[3], 10); + k.isNaN(i) && (i = 1), n[3] = i + } + this.call("trackEvent", t, e, n) + } + }), k.availableTools.ga = f, k.inherit(h, k.BaseTool), k.extend(h.prototype, { + name: "GAUniversal", + isPageCodeLoadSuppressed: function() { + return this.settings.initTool === !1 || this._cancelToolInit === !0 + }, + isCallSuppressed: function() { + return this._cancelToolInit === !0 + }, + endPLPhase: function(t) { + var e = this.settings, + n = e.loadOn; + if (this.isPageCodeLoadSuppressed()) return void k.notify("GAU: Page code not loaded(suppressed).", 1); + if (t === n) { + if (k.notify("GAU: Initializing at " + t, 1), this.initialize(), this.flushQueue(), this.suppressInitialPageView) return; + this.call("send", "pageview") + } + }, + initialize: function() { + var t = ""; + e[t] = e[t] || this.createGAObject(), e.GoogleAnalyticsObject = t, k.notify("GAU: Page code loaded.", 1), k.loadScriptOnce(this.getToolUrl()); + var n = this.settings; + if (S.allowLinker() && n.allowLinker !== !1 ? this.createAccountForLinker() : this.createAccount(), this.executeInitCommands(), n.customInit) { + var i = n.customInit, + a = i(e[t], this.getTrackerName()); + a === !1 && (this.suppressInitialPageView = !0) + } + this.initialized = !0 + }, + getTrackerName: function() { + return this.settings.trackerSettings.name || "" + }, + createGAObject: function() { + var t = function() { + t.q.push(arguments) + }; + return t.q = [], t.l = 1 * new Date, t + }, + create: function(t) { + var e = this.settings.trackerSettings; + e.cookieDomain || (e.cookieDomain = S.cookieDomain()), k.extend(e, t || {}), this.call("create", e) + }, + createAccount: function() { + this.create() + }, + createAccountForLinker: function() { + var t = {}; + S.allowLinker() && (t.allowLinker = !0), this.create(t), this.call("require", "linker"), this.call("linker:autoLink", this.autoLinkDomains(), !1, !0) + }, + autoLinkDomains: function() { + var t = location.hostname; + return k.filter(k.settings.domainList, function(e) { + return e !== t + }) + }, + executeInitCommands: function() { + var t = this.settings; + t.initCommands && k.each(t.initCommands, function(t) { + this.call.apply(this, t) + }, this) + }, + call: function() { + return "function" != typeof ga ? void k.notify("GA Universal function not found!", 4) : void(this.isCallSuppressed() || (arguments[0] = this.cmd(arguments[0]), this.log(k.toArray(arguments)), ga.apply(e, arguments))) + }, + $missing$: function(t, e, n, i) { + i = i || [], i = [t].concat(i), this.call.apply(this, i) + }, + getToolUrl: function() { + var t = this.settings, + e = k.isHttps(); + return t.url ? e ? t.url.https : t.url.http : (e ? "https://ssl" : "http://www") + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/.google-analytics.com/analytics.js" + }, + cmd: function(t) { + var e = ["send", "set", "get"], + n = this.getTrackerName(); + return n && -1 !== k.indexOf(e, t) ? n + "." + t : t + }, + log: function(t) { + var e = t[0], + n = this.getTrackerName() || "default", + i = "GA Universal: sent command " + e + " to tracker " + n; + if (t.length > 1) { + { + k.stringify(t.slice(1)) + } + i += " with parameters " + k.stringify(t.slice(1)) + } + i += ".", k.notify(i, 1) + } + }), k.availableTools.ga_universal = h; + var S = { + allowLinker: function() { + return k.hasMultipleDomains() + }, + cookieDomain: function() { + var t = k.settings.domainList, + n = k.find(t, function(t) { + var n = e.location.hostname; + return k.equalsIgnoreCase(n.slice(n.length - t.length), t) + }), + i = n ? "." + n : "auto"; + return i + } + }; + k.inherit(g, k.BaseTool), k.extend(g.prototype, { + name: "SC", + initialize: function(t) { + if (!this._cancelToolInit) + if (this.settings.initVars = this.substituteVariables(this.settings.initVars, { + type: t + }), this.settings.initTool !== !1) { + var n = this.settings.sCodeURL || k.basePath() + "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/s_code.js"; + "object" == typeof n && (n = "https:" === e.location.protocol ? n.https : n.http), n.match(/^https?:/) || (n = k.basePath() + n), this.settings.initVars && this.$setVars(null, null, this.settings.initVars), k.loadScript(n, k.bind(this.onSCodeLoaded, this)), this.initializing = !0 + } else this.initializing = !0, this.pollForSC() + }, + onSCodeLoaded: function() { + this.initialized = !0, this.initializing = !1, k.notify("Adobe Analytics: loaded.", 1), k.fireEvent(this.id + ".load", this.getS()), this.flushQueueExceptTrackLink(), this.sendBeacon(), this.flushQueue() + }, + pollForSC: function() { + k.poll(k.bind(function() { + return "function" == typeof e.s_gi ? (this.initialized = !0, this.initializing = !1, k.notify("Adobe Analytics: loaded (manual).", 1), k.fireEvent(this.id + ".load", this.getS()), this.flushQueue(), !0) : void 0 + }, this)) + }, + flushQueueExceptTrackLink: function() { + if (this.pending) { + for (var t = [], e = 0; e < this.pending.length; e++) { + var n = this.pending[e], + i = n[0]; + "trackLink" === i.command ? t.push(n) : this.triggerCommand.apply(this, n) + } + this.pending = t + } + }, + isQueueAvailable: function() { + return !this.initialized + }, + substituteVariables: function(t, e) { + var n = {}; + for (var i in t) { + var a = t[i]; + n[i] = k.replace(a, location, e) + } + return n + }, + endPLPhase: function(t) { + var e = this.settings.loadOn; + t === e && this.initialize(t) + }, + $setVars: function(t, e, n) { + for (var i in n) { + var a = n[i]; + "function" == typeof a && (a = a()), this.varBindings[i] = a + } + k.notify("Adobe Analytics: set variables.", 2) + }, + $customSetup: function(t, e, n) { + this.customSetupFuns.push(function(i) { + n.call(t, e, i) + }) + }, + getAccount: function(t) { + return e.s_account ? e.s_account : t && this.settings.accountByHost ? this.settings.accountByHost[t] || this.settings.account : this.settings.account + }, + isValidSCInstance: function(t) { + return !!t && "function" == typeof t.t && "function" == typeof t.tl + }, + getS: function(t, n) { + var i = n && n.hostname || e.location.hostname, + a = this.concatWithToolVarBindings(n && n.setVars || this.varBindings), + r = n && n.addEvent || this.events, + o = this.getAccount(i), + s = e.s_gi; + if (!s) return null; + if (this.isValidSCInstance(t) || (t = null), !o && !t) return k.notify("Adobe Analytics: tracker not initialized because account was not found", 1), null; + var t = t || s(o), + c = "D" + k.appVersion; + "undefined" != typeof t.tagContainerMarker ? t.tagContainerMarker = c : "string" == typeof t.version && t.version.substring(t.version.length - 5) !== "-" + c && (t.version += "-" + c), t.sa && this.settings.skipSetAccount !== !0 && this.settings.initTool !== !1 && t.sa(this.settings.account), this.applyVarBindingsOnTracker(t, a), r.length > 0 && (t.events = r.join(",")); + var u = k.getVisitorId(); + return u && (t.visitor = k.getVisitorId()), t + }, + concatWithToolVarBindings: function(t) { + var e = this.settings.initVars || {}; + return k.map(["trackingServer", "trackingServerSecure"], function(n) { + e[n] && !t[n] && (t[n] = e[n]) + }), t + }, + applyVarBindingsOnTracker: function(t, e) { + for (var n in e) t[n] = e[n] + }, + clearVarBindings: function() { + this.varBindings = {} + }, + clearCustomSetup: function() { + this.customSetupFuns = [] + }, + sendBeacon: function() { + var t = this.getS(e[this.settings.renameS || "s"]); + return t ? this.settings.customInit && this.settings.customInit(t) === !1 ? void k.notify("Adobe Analytics: custom init suppressed beacon", 1) : (this.settings.executeCustomPageCodeFirst && this.applyVarBindingsOnTracker(t, this.varBindings), this.executeCustomSetupFuns(t), t.t(), this.clearVarBindings(), this.clearCustomSetup(), void k.notify("Adobe Analytics: tracked page view", 1)) : void k.notify("Adobe Analytics: page code not loaded", 1) + }, + executeCustomSetupFuns: function(t) { + k.each(this.customSetupFuns, function(n) { + n.call(e, t) + }) + }, + $trackLink: function(t, e, n) { + n = n || {}; + var i = n.type, + a = n.linkName; + !a && t && t.nodeName && "a" === t.nodeName.toLowerCase() && (a = t.innerHTML), a || (a = "link clicked"); + var r = n && n.setVars, + o = n && n.addEvent || [], + s = this.getS(null, { + setVars: r, + addEvent: o + }); + if (!s) return void k.notify("Adobe Analytics: page code not loaded", 1); + var c = s.linkTrackVars, + u = s.linkTrackEvents, + l = this.definedVarNames(r); + n && n.customSetup && n.customSetup.call(t, e, s), o.length > 0 && l.push("events"), s.products && l.push("products"), l = this.mergeTrackLinkVars(s.linkTrackVars, l), o = this.mergeTrackLinkVars(s.linkTrackEvents, o), s.linkTrackVars = this.getCustomLinkVarsList(l); + var d = k.map(o, function(t) { + return t.split(":")[0] + }); + s.linkTrackEvents = this.getCustomLinkVarsList(d), s.tl(!0, i || "o", a), k.notify(["Adobe Analytics: tracked link ", "using: linkTrackVars=", k.stringify(s.linkTrackVars), "; linkTrackEvents=", k.stringify(s.linkTrackEvents)].join(""), 1), s.linkTrackVars = c, s.linkTrackEvents = u + }, + mergeTrackLinkVars: function(t, e) { + return t && (e = t.split(",").concat(e)), e + }, + getCustomLinkVarsList: function(t) { + var e = k.indexOf(t, "None"); + return e > -1 && t.length > 1 && t.splice(e, 1), t.join(",") + }, + definedVarNames: function(t) { + t = t || this.varBindings; + var e = []; + for (var n in t) /^(eVar[0-9]+)|(prop[0-9]+)$/.test(n) && e.push(n); + return e + }, + getTrackingServer: function() { + var t = this, + n = t.getS(); + if (n && n.trackingServer) return n.trackingServer; + var i = t.getAccount(e.location.hostname); + if (!i) return null; + var a, r, o, s = "", + c = n && n.dc; + return a = i, r = a.indexOf(","), r >= 0 && (a = a.gb(0, r)), a = a.replace(/[^A-Za-z0-9]/g, ""), s || (s = "2o7.net"), c = c ? ("" + c).toLowerCase() : "d1", "2o7.net" == s && ("d1" == c ? c = "112" : "d2" == c && (c = "122"), o = ""), r = a + "." + c + "." + o + s + }, + $trackPageView: function(t, e, n) { + var i = n && n.setVars, + a = n && n.addEvent || [], + r = this.getS(null, { + setVars: i, + addEvent: a + }); + return r ? (r.linkTrackVars = "", r.linkTrackEvents = "", this.executeCustomSetupFuns(r), n && n.customSetup && n.customSetup.call(t, e, r), r.t(), this.clearVarBindings(), this.clearCustomSetup(), void k.notify("Adobe Analytics: tracked page view", 1)) : void k.notify("Adobe Analytics: page code not loaded", 1) + }, + $postTransaction: function(t, n, i) { + var a = k.data.transaction = e[i], + r = this.varBindings, + o = this.settings.fieldVarMapping; + if (k.each(a.items, function(t) { + this.products.push(t) + }, this), r.products = k.map(this.products, function(t) { + var e = []; + if (o && o.item) + for (var n in o.item) { + var i = o.item[n]; + e.push(i + "=" + t[n]), "event" === i.substring(0, 5) && this.events.push(i) + } + var a = ["", t.product, t.quantity, t.unitPrice * t.quantity]; + return e.length > 0 && a.push(e.join("|")), a.join(";") + }, this).join(","), o && o.transaction) { + var s = []; + for (var c in o.transaction) { + var i = o.transaction[c]; + s.push(i + "=" + a[c]), "event" === i.substring(0, 5) && this.events.push(i) + } + r.products.length > 0 && (r.products += ","), r.products += ";;;;" + s.join("|") + } + }, + $addEvent: function() { + for (var t = 2, e = arguments.length; e > t; t++) this.events.push(arguments[t]) + }, + $addProduct: function() { + for (var t = 2, e = arguments.length; e > t; t++) this.products.push(arguments[t]) + } + }), k.availableTools.sc = g, k.inherit(p, k.BaseTool), k.extend(p.prototype, { + name: "Default", + $loadIframe: function(t, n, i) { + var a = i.pages, + r = i.loadOn, + o = k.bind(function() { + k.each(a, function(e) { + this.loadIframe(t, n, e) + }, this) + }, this); + r || o(), "domready" === r && k.domReady(o), "load" === r && k.addEventHandler(e, "load", o) + }, + loadIframe: function(t, e, i) { + var a = n.createElement("iframe"); + a.style.display = "none"; + var r = k.data.host, + o = i.data, + s = this.scriptURL(i.src), + c = k.searchVariables(o, t, e); + r && (s = k.basePath() + s), s += c, a.src = s; + var u = n.getElementsByTagName("body")[0]; + u ? u.appendChild(a) : k.domReady(function() { + n.getElementsByTagName("body")[0].appendChild(a) + }) + }, + scriptURL: function(t) { + var e = k.settings.scriptDir || ""; + return e + t + }, + $loadScript: function(t, n, i) { + var a = i.scripts, + r = i.sequential, + o = i.loadOn, + s = k.bind(function() { + r ? this.loadScripts(t, n, a) : k.each(a, function(e) { + this.loadScripts(t, n, [e]) + }, this) + }, this); + o ? "domready" === o ? k.domReady(s) : "load" === o && k.addEventHandler(e, "load", s) : s() + }, + loadScripts: function(t, e, n) { + function i() { + if (r.length > 0 && a) { + var c = r.shift(); + c.call(t, e, o) + } + var u = n.shift(); + if (u) { + var l = k.data.host, + d = s.scriptURL(u.src); + l && (d = k.basePath() + d), k.loadScript(d, i), a = u + } + } + try { + var a, n = n.slice(0), + r = this.asyncScriptCallbackQueue, + o = e.target || e.srcElement, + s = this + } catch (c) { + console.error("scripts is", k.stringify(n)) + } + i() + }, + $loadBlockingScript: function(t, e, n) { + var i = n.scripts, + a = (n.loadOn, k.bind(function() { + k.each(i, function(n) { + this.loadBlockingScript(t, e, n) + }, this) + }, this)); + a() + }, + loadBlockingScript: function(t, e, n) { + var i = this.scriptURL(n.src), + a = k.data.host, + r = e.target || e.srcElement; + a && (i = k.basePath() + i), this.argsForBlockingScripts.push([t, e, r]), k.loadScriptSync(i) + }, + pushAsyncScript: function(t) { + this.asyncScriptCallbackQueue.push(t) + }, + pushBlockingScript: function(t) { + var e = this.argsForBlockingScripts.shift(), + n = e[0]; + t.apply(n, e.slice(1)) + }, + $writeHTML: function(t, e) { + if (k.domReadyFired) return void k.notify("Command writeHTML failed. You may be using an async installation of Satellite.", 1); + if ("pagebottom" !== e.type && "pagetop" !== e.type) return void k.notify("You can only use writeHTML on the `pagetop` and `pagebottom` events.", 1); + for (var i = 2, a = arguments.length; a > i; i++) { + var r = arguments[i].html; + r = k.replace(r, t, e), n.write(r) + } + }, + linkNeedsDelayActivate: function(t, n) { + n = n || e; + var i = t.tagName, + a = t.getAttribute("target"), + r = t.getAttribute("href"); + return i && "a" !== i.toLowerCase() ? !1 : r ? a ? "_blank" === a ? !1 : "_top" === a ? n.top === n : "_parent" === a ? !1 : "_self" === a ? !0 : n.name ? a === n.name : !0 : !0 : !1 + }, + $delayActivateLink: function(t, e) { + if (this.linkNeedsDelayActivate(t)) { + k.preventDefault(e); + var n = k.settings.linkDelay || 100; + setTimeout(function() { + k.setLocation(t.href) + }, n) + } + }, + isQueueable: function(t) { + return "writeHTML" !== t.command + } + }), k.availableTools["default"] = p, k.inherit(v, k.BaseTool), k.extend(v.prototype, { + name: "tnt", + endPLPhase: function(t) { + "aftertoolinit" === t && this.initialize() + }, + initialize: function() { + k.notify("Test & Target: Initializing", 1), this.initializeTargetPageParams(), this.load() + }, + initializeTargetPageParams: function() { + e.targetPageParams && this.updateTargetPageParams(this.parseTargetPageParamsResult(e.targetPageParams())), this.updateTargetPageParams(this.settings.pageParams), this.setTargetPageParamsFunction() + }, + load: function() { + var t = this.getMboxURL(this.settings.mboxURL); + this.settings.initTool !== !1 ? this.settings.loadSync ? (k.loadScriptSync(t), this.onScriptLoaded()) : (k.loadScript(t, k.bind(this.onScriptLoaded, this)), this.initializing = !0) : this.initialized = !0 + }, + getMboxURL: function(t) { + var n = t; + return k.isObject(t) && (n = "https:" === e.location.protocol ? t.https : t.http), n.match(/^https?:/) ? n : k.basePath() + n + }, + onScriptLoaded: function() { + k.notify("Test & Target: loaded.", 1), this.flushQueue(), this.initialized = !0, this.initializing = !1 + }, + $addMbox: function(t, e, n) { + var i = n.mboxGoesAround, + a = i + "{visibility: hidden;}", + r = this.appendStyle(a); + i in this.styleElements || (this.styleElements[i] = r), this.initialized ? this.$addMBoxStep2(null, null, n) : this.initializing && this.queueCommand({ + command: "addMBoxStep2", + arguments: [n] + }, t, e) + }, + $addMBoxStep2: function(t, i, a) { + var r = this.generateID(), + o = this; + k.addEventHandler(e, "load", k.bind(function() { + k.cssQuery(a.mboxGoesAround, function(t) { + var i = t[0]; + if (i) { + var s = n.createElement("div"); + s.id = r, i.parentNode.replaceChild(s, i), s.appendChild(i), e.mboxDefine(r, a.mboxName); + var c = [a.mboxName]; + a.arguments && (c = c.concat(a.arguments)), e.mboxUpdate.apply(null, c), o.reappearWhenCallComesBack(i, r, a.timeout, a) + } + }) + }, this)), this.lastMboxID = r + }, + $addTargetPageParams: function(t, e, n) { + this.updateTargetPageParams(n) + }, + generateID: function() { + var t = "_sdsat_mbox_" + String(Math.random()).substring(2) + "_"; + return t + }, + appendStyle: function(t) { + var e = n.getElementsByTagName("head")[0], + i = n.createElement("style"); + return i.type = "text/css", i.styleSheet ? i.styleSheet.cssText = t : i.appendChild(n.createTextNode(t)), e.appendChild(i), i + }, + reappearWhenCallComesBack: function(t, e, n, i) { + function a() { + var t = r.styleElements[i.mboxGoesAround]; + t && (t.parentNode.removeChild(t), delete r.styleElements[i.mboxGoesAround]) + } + var r = this; + k.cssQuery('script[src*="omtrdc.net"]', function(t) { + var e = t[0]; + if (e) { + k.scriptOnLoad(e.src, e, function() { + k.notify("Test & Target: request complete", 1), a(), clearTimeout(i) + }); + var i = setTimeout(function() { + k.notify("Test & Target: bailing after " + n + "ms", 1), a() + }, n) + } else k.notify("Test & Target: failed to find T&T ajax call, bailing", 1), a() + }) + }, + updateTargetPageParams: function(t) { + var e = {}; + for (var n in t) t.hasOwnProperty(n) && (e[k.replace(n)] = k.replace(t[n])); + k.extend(this.targetPageParamsStore, e) + }, + getTargetPageParams: function() { + return this.targetPageParamsStore + }, + setTargetPageParamsFunction: function() { + e.targetPageParams = k.bind(this.getTargetPageParams, this) + }, + parseTargetPageParamsResult: function(t) { + var e = t; + return k.isArray(t) && (t = t.join("&")), k.isString(t) && (e = k.parseQueryParams(t)), e + } + }), k.availableTools.tnt = v, k.inherit(m, k.BaseTool), k.extend(m.prototype, { + initialize: function() { + var t = this.settings; + if (this.settings.initTool !== !1) { + var e = t.url; + e = "string" == typeof e ? k.basePath() + e : k.isHttps() ? e.https : e.http, k.loadScript(e, k.bind(this.onLoad, this)), this.initializing = !0 + } else this.initialized = !0 + }, + isQueueAvailable: function() { + return !this.initialized + }, + onLoad: function() { + this.initialized = !0, this.initializing = !1, this.settings.initialBeacon && this.settings.initialBeacon(), this.flushQueue() + }, + endPLPhase: function(t) { + var e = this.settings.loadOn; + t === e && (k.notify(this.name + ": Initializing at " + t, 1), this.initialize()) + }, + $fire: function(t, e, n) { + return this.initializing ? void this.queueCommand({ + command: "fire", + arguments: [n] + }, t, e) : void n.call(this.settings, t, e) + } + }), k.availableTools.am = m, k.availableTools.adlens = m, k.ecommerce = { + addItem: function() { + var t = [].slice.call(arguments); + k.onEvent({ + type: "ecommerce.additem", + target: t + }) + }, + addTrans: function() { + var t = [].slice.call(arguments); + k.data.saleData.sale = { + orderId: t[0], + revenue: t[2] + }, k.onEvent({ + type: "ecommerce.addtrans", + target: t + }) + }, + trackTrans: function() { + k.onEvent({ + type: "ecommerce.tracktrans", + target: [] + }) + } + }, _satellite.init({ + tools: { + "1875dbe29f7bb9ab238fc7489edde34c": { + engine: "sc", + loadOn: "pagebottom", + account: "ncomauth", + euCookie: !1, + sCodeURL: "https://assets.adobedtm.com/353f197638abe79a7d2dc7a7fd522d075d11521d/353f197638abe79a7d2dc7a7fd522d075d11521d/s-code-contents-b5fb8c32b9f61016251e19c1d53af49ce5a6c2de.js", + initVars: { + charSet: "UTF-8", + currencyCode: "USD", + trackingServer: "metrics.nintendo.com", + trackingServerSecure: "smetrics.nintendo.com", + pageName: "%Page Name%", + channel: "oauth", + trackInlineStats: !0, + trackDownloadLinks: !0, + linkDownloadFileTypes: "avi,css,csv,doc,docx,eps,exe,jpg,js,m4v,mov,mp3,pdf,png,ppt,pptx,rar,svg,tab,txt,vsd,vxd,wav,wma,wmv,xls,xlsx,xml,zip", + trackExternalLinks: !0, + linkInternalFilters: "javascript:,mailto:,tel:", + linkLeaveQueryString: !1, + dynamicVariablePrefix: "D=" + } + } + }, + pageLoadRules: [], + rules: [], + directCallRules: [], + settings: { + trackInternalLinks: !0, + libraryName: "satelliteLib-df3d4f52ec08e860f63e4ce57be273a0ed391ab8", + isStaging: !1, + allowGATTcalls: !1, + downloadExtensions: /\.(?:doc|docx|eps|jpg|png|svg|xls|ppt|pptx|pdf|xlsx|tab|csv|zip|txt|vsd|vxd|xml|js|css|rar|exe|wma|mov|avi|wmv|mp3|wav|m4v)($|\&|\?)/i, + notifications: !1, + utilVisible: !1, + domainList: ["nintendo.net"], + scriptDir: "353f197638abe79a7d2dc7a7fd522d075d11521d/scripts/", + euCookieName: "smetrics.nintendo.com", + tagTimeout: 3e3 + }, + data: { + URI: n.location.pathname + n.location.search, + browser: {}, + cartItems: [], + revenue: "", + host: { + http: "assets.adobedtm.com", + https: "assets.adobedtm.com" + } + }, + dataElements: { + "Custom URL": { + jsVariable: "window.location.href.split('?')[0]", + storeLength: "pageview" + }, + "Page Name": { + customJS: function() { + var t = n.createElement("a"); + return t.href = n.location, "oauth" + t.pathname.replace(/\//g, ":") + }, + "default": "oauth:unknown", + storeLength: "pageview" + } + }, + appVersion: "4BD", + buildDate: "2014-11-19 00:52:36 UTC", + publishDate: "2014-11-19 00:51:44 UTC" + }) +}(window, document); \ No newline at end of file