﻿/**
 * Track external links, mailto's, and downloads as events.
 */
document.observe("dom:loaded", function(){
  $$('body')[0].observe('click', function(e){
      var ele = $(Event.element(e));
      if (!ele.match('a, area')){
        ele = ele.up('a, area');
      }
      var _gaq = window._gaq || [];
      var isInt = new RegExp("^(https?):\/\/" + window.location.host, "i");
      var isDl = new RegExp("\\.(7z|aac|arc|arj|asf|asx|avi|bin|csv|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls|xml|z|zip)$", "i");
      if (typeof(ele) !== 'undefined'){
        // is it internal?
        if (isInt.test(ele.href)) {
          // is it a download
          if (isDl.test(ele.href)){
            _gaq.push(["_trackEvent", "Downloads", extension[1].toUpperCase(), ele.href.replace(isInternal, '')]);
          }
        } else {
          // not internal
          if (ele.href.match(/^mailto:/i)){
            // mailto
            _gaq.push(["_trackEvent", "Mails", "Click", ele.href.substring(7)]);
          } else if (ele.href){
            //external
            _gaq.push(["_trackEvent", "Outbound links", "Click", ele.href]);
          }
        }
      }
  });
});

