EnPulse

Pulse tracking JS

by Oliver Kelso

JavaScript

var pulse = {
    
    config: {
        dc: "//ens-activatesandbox.activate.ensighten.com/no-content", // pulse gif url
        dl: window.hp_dataLayer, // datalayer object
    },
    
    params: {},
    
    /**
     * Encode string
     */ 
    pEncode: function(string){
        if(typeof encodeURIComponent == "function"){
            return encodeURIComponent(string);
        }else{
            return escape(string);
        }
    },
    
    /**
     * Parse parameter string and encode values
     */ 
    parseParams: function(string){
        if(typeof string === 'string'){
            string = (string.match("/;+$/")) ? string.replace(/;+$/, "") : string; // remove trailing semicolon

            var parsed = string.split(";"); // split string on semicolon

            var arrayLength = parsed.length;
            for(var i = 0; i < arrayLength; i++){
                if(parsed[i] !== "undefined"){
                    parsed[i] = this.pEncode(parsed[i]); // encode array values
                } 
            }

            return parsed.join(";"); // return string           
        }else{
            return string;
        } 
    },
    
    /**
     * Page data
     */ 
    collect: function(){
        this.params = {}; 
        this.params.ti = document.title || ""; // page title
        this.params.sr = screen.width + "x" + screen.height; // screen resolution
        this.params.ref = document.referrer || ""; // referrer
        this.params.ul = navigator.language || navigator.userLanguage || navigator.browserLanguage || "unknown"; // browser language
        this.params.cd = screen.colorDepth || "unknown"; // browser color depth
        this.params.bs = this.bScreen();
        this.params.sip = document.location.hostname; // current host name
        this.params.uri = document.location.pathname; // current path
        this.params.bh = new Date().getHours(); // current hour of the day
        this.params.tz = new Date().getTimezoneOffset() / 60 * -1; //...