var GADownloadTracker = Class.create({
  initialize: function() {
    
    var pattern = /([^\s]+(?=\.(pdf|doc|mp3))\.\2)/i;
    
    $$("a").each(function(item) {
      if (pattern.test(item.readAttribute("href"))) {
        $(item).observe("click", this.track.bindAsEventListener(this));
      }
    }.bind(this));
  },
  
  track: function(event) {
    
    event.stop();
    
    var element = event.findElement("a");
    if (element != document) {
      
      var hrefValue    = element.readAttribute("href");
      var splitArr     = hrefValue.split(".");
      var downloadType = splitArr[splitArr.length - 1].toUpperCase();
      var item         = element.readAttribute('href');
      var page         = document.URL.split(document.domain)[1];
      
      _gaq.push(['_trackEvent', downloadType, page, hrefValue]);
      setTimeout('document.location = "' + hrefValue + '"', 100);
    }
  }
});

Event.observe(window, 'load', function(event) {
  new GADownloadTracker();
});
