forked from SDITools/Airlock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathairlock.min.js
3 lines (3 loc) · 4.01 KB
/
airlock.min.js
1
2
3
/* | Airlock.js - v0.1.0
| http://searchdiscovery.com/ */
!function(a,b){!function(a,b,c,d,e,f,g){a.GoogleAnalyticsObject=e,a[e]=a[e]||function(){(a[e].q=a[e].q||[]).push(arguments)},a[e].l=1*new Date,f=b.createElement(c),g=b.getElementsByTagName(c)[0],f.async=1,f.src=d,g.parentNode.insertBefore(f,g)}(a,b,"script","//www.google-analytics.com/analytics.js","ga");var c,d,e=a._gaq,f={actions:/^([\w\d_-]+)?\.?(_track(Event|Pageview|Trans|Social|Timing)|_add(Item|Trans)|_set(CustomVar|Account|DomainName|AllowLinker|SampleRate|CookiePath)?|_link|_require)$/,setupActions:/^(.+\.)?_(set(Account|CustomVar|DomainName|AllowLinker|SampleRate|CookiePath)?)$/,ecommerceActions:/^(.+\.)?_(add(Trans|Item)|trackTrans)$/,writeableSet:/^page|title$/},g=function(){this._contents={},this._defaultKey="__default__"};g.prototype.get=function(a){return a=a||this._defaultKey,this._contents[a]},g.prototype.set=function(a,b){return a=a||this._defaultKey,this._contents[a]=b,this},g.prototype.each=function(a,b){for(var c in this._contents)a.call(b,this._contents[c],c,this._contents)};var h=function(a){this.settings={},this._settings={},this.account=a.account,this.namespace=a.namespace,this.setupQueue=[],this.settings.name=this.namespace},i={};i.spaceships=new g,i.readAction=function(a){var b=a.match(f.actions);return{namespace:b[1],action:b[2]}},i.initialize=function(){var b,g,j=[];for(c=0,d=e.length;d>c;c++)g=null,b=i.readAction(e[c][0]),/_setAccount/.test(b.action)?(g=new h({namespace:b.namespace,account:e[c][1]}),this.dock(g)):f.setupActions.test(b.action)?this.pressurize(this.spaceships.get(b.namespace),e[c]):j.push(e[c]);for(Array.prototype.splice.apply(a._gaq,[0,e.length].concat(j)),this.spaceships.each(function(a){i.open(a,["create",a.account,a.settings])}),a._gaq.push=function(b){var c=b[0];if(f.actions.test(c)){f.ecommerceActions.test(c)&&!i.ecommerceInitialized&&(i.ecommerceInitialized=!0,a.ga("require","ecommerce","ecommerce.js"));var d=i.spaceships.get(i.readAction(c).namespace);d&&(b=i.pressurize(d,b),i.open(d,b))}},c=0,d=e.length;d>c;c++)e.push(e[c])},i.dock=function(a){this.spaceships.set(a.namespace,a)},i.open=function(b,c){c&&(c[0]=b.namespace&&"create"!==c[0]?[b.namespace,c[0]].join("."):c[0],a.ga.apply(a,c))},i.pressurize=function(a,b){var c=i.conversions[b.splice(0,1)[0].replace(f.actions,"$2")];if(c){if("function"==typeof c)return c.apply(a,b);for(var d={},e=[],g=0,h=b.length<c.input.length?b.length:c.input.length;h>g;g++)d[c.input[g]]=b[g];for(g=0,h=c.output.length;h>g;g++){var k=j(c.output[g],d);k&&e.push(k)}return e}};var j=function(a,b){if("function"==typeof a)return a(b);var c=a.match(/\[\[([a-zA-Z_]+)\]\]/);if(c){if(!b[c[1]])return;return a.replace(c[0],b[c[1]])}return a},k=function(a){return a};i.conversions={_setSampleRate:function(a){this.settings.sampleRate=a},_setCookiePath:function(a){this.settings.cookiePath=a},_set:function(a,b){return this.settings[a.replace("ua","cookie")]=b,f.writeableSet.test(a)?["set",a,b]:void 0},_setDomainName:function(a){this._settings.domainName=a},_setAllowLinker:function(b){var c=this;this.settings.allowLinker=b,this.setupQueue.push(function(){a.ga("require","linker"),i.open(c,["linker:autoLink",c._settings.domainName])})},_require:function(a){return"inpage_linkid"===a?["require","linkid","linkid.js"]:void 0},_setCustomVar:{input:["slot","name","value"],output:["set","dimension[[slot]]","[[value]]"]},_trackEvent:{input:["eventCategory","eventAction","eventLabel","eventValue","nonInteraction"],output:["send","event",k]},_trackPageview:{input:["pagePath"],output:["send","pageview","[[pagePath]]"]},_trackTiming:{input:["timingCategory","timingVar","timingValue","timingLabel"],output:["send","timing",k]},_trackSocial:{input:["socialNetwork","socialAction","socialTarget","page"],output:["send","social",k]},_addTrans:{input:["id","affiliation","revenue","tax","shipping"],output:["ecommerce:addTransaction",k]},_addItem:{input:["id","sku","name","category","price","quantity"],output:["ecommerce:addItem",k]},_trackTrans:{input:[],output:["ecommerce:send"]}},i.initialize(),a.Airlock=i}(window,document);