Skip to content
downloadtracker.js 1.53 KiB
Newer Older
gaTrackerAttach = function () {

Alexander Hass's avatar
Alexander Hass committed
  $('a').click( function() {
    var LegacyVersion = Drupal.settings.googleanalytics.LegacyVersion;
    var trackDownload = Drupal.settings.googleanalytics.trackDownload;

    // Extract the domain from the location (the domain are in domain[2]).
Alexander Hass's avatar
Alexander Hass committed
    var domain = /^(http|https|ftp):\/\/([a-z-.0-9]+)[\/]{0,1}/i.exec(window.location);
    // Expression for check internal links.
Alexander Hass's avatar
Alexander Hass committed
    var internalLink = new RegExp("^(http|https|ftp):\/\/"+domain[2], "i");
    // Expression for check downloads
    var isDownload = new RegExp("("+trackDownload+")$", "i");

    if (internalLink.test(this.href)){
      // ... and if the extension are in trackDownload ...
      if (trackDownload && isDownload.test(this.href)) {
        // Clean and track the URL.
        if (LegacyVersion) {
          urchinTracker('/download/'+this.href.replace(/^(http|https|ftp):\/\/([a-z-.0-9]+)\//i, '').split('/').join('--'));
          pageTracker._trackPageview('/download/'+this.href.replace(/^(http|https|ftp):\/\/([a-z-.0-9]+)\//i, '').split('/').join('--'));
      // are external
      // Clean and track the URL
        urchinTracker('/outgoing/'+this.href.replace(/^http:\/\/|https:\/\/|ftp:\/\//i, '').split('/').join('--'));
        pageTracker._trackPageview('/outgoing/'+this.href.replace(/^http:\/\/|https:\/\/|ftp:\/\//i, '').split('/').join('--'));
    }
  });
};

if (Drupal.jsEnabled) {
Alexander Hass's avatar
Alexander Hass committed
 $(document).ready(gaTrackerAttach);