/***************************************
   Google Analytics File Tracking Plugin
   @author Karl Swedberg
   @version 0.2 (07/08/2008)
   @requires jQuery v1.2.6+
   
   @options 
   {
     extensions: 'doc,xls,exe,zip,pdf,swf', 
     pathPrefix: '/downloads/',
     debug:      false
   }
   
 ************************************** */
   
 jQuery.noConflict();
 jQuery(document).ready(function($) {
   $('#content').gafiles();
   $('#sidebar').gafiles();
 });


/************************************** */

(function($) {
$.fn.gafiles = function(options) {
  var opts = $.extend({}, $.fn.gafiles.defaults, options);

  return this.each(function(event) {
    var ext = opts.extensions.replace(/\s+/g,'').replace(/,/g,'|'),
      extPattern = new RegExp('\.(' + ext + ')$');
      // console.log(this);
      
    $(this).click(function(event) {
      var tgt = event.target.parentNode.nodeName.toLowerCase() == 'a' ? event.target.parentNode : event.target;
      if (tgt.nodeName.toLowerCase() === 'a') {
        var linkPath = tgt.pathname.replace(/^\//,''),
          linkExt = linkPath.slice(linkPath.lastIndexOf('.'));
        if (opts.debug) {
          (console && console.log) ? console.log('matches: ' + extPattern.test(linkExt)) : alert('matches: ' + extPattern.test(linkExt));
        }
        if (extPattern.test(linkExt)) {
          if (!opts.debug) {
            if (typeof pageTracker != 'undefined') {
              pageTracker._trackPageview(opts.pathPrefix + linkPath);
            } else if (typeof pageTracker != 'undefined') {
              urchinTracker(opts.pathPrefix + linkPath);
            } else {
              return;
            }
          } else {
            (console && console.log) ? console.log('downloads/' + linkPath) : alert('downloads/' + linkPath);
            (console && console.log) ? console.log(typeof pageTracker == 'undefined' ? 'pageTrack NOT LOADED!' : 'pageTrack successfully loaded') : alert(typeof pageTrack == 'undefined' ? 'pageTrack NOT LOADED!' : 'pageTrack successfully loaded');
          }  
        }
      }
      if (opts.debug) return false;
    });
  });
};

$.fn.gafiles.defaults = {
  extensions: 'doc,xls,exe,zip,pdf,swf',
  pathPrefix: '/downloads/',
  debug:      false
};  
})(jQuery);
