
// Note: logic currently tracks external downloads as downloads rather than exit clicks.

// File extensions for non-document downloads
var analyticsFileTypes = ['exe','xpi','mp3','vcf','diff','zip','gz','tgz','rar','js','gif','png','jpeg','jpg','css','wma','mov','avi','wmv','mpeg','swf'];
// File extensions for document downloads
var analyticsDocFileTypes = ['docx','xlsx','pptx','pdf','odt','ods','odp','doc','xls','ppt','txt'];

// Track as non-document download clicks as events?
var analyticsDLEventTracking = 'yes';  // Accepts 'yes  Any other value, no.

// Track as document download clicks as events?
var analyticsDocDLEventTracking = 'yes';  // Accepts 'yes  Any other value, no.

// virtual directory in Google Analytics for downloads tracked as page views
var analyticsDownloadsPrefix = '/download/';

var analyticsDownloadCategory = 'Downloads';

// Track Outbound clicks as events?
var analyticsEventTracking = 'yes'; // Accepts 'yes'.  Any other value, no.

// virtual directory in Google Analytics for external links tracked as page views.
var analyticsOutboundPrefix = '/outgoing/';

var analyticsOutboundCategory = 'Outbound Traffic';

/* --- end configuration --- */

jQuery(document).ready(function() {

	jQuery('a').each(function() {
		var a = jQuery(this);
		var href = a.attr('href');
		
		// Check if the a tag has a href, if not, stop for the current link
		if ( href == undefined )
			return;
		
		var url = href.replace('http://','').replace('https://','');
		var hrefArray = href.split('.').reverse();
		var extension = hrefArray[0].toLowerCase();
		var hrefArray = href.split('/').reverse();
		var domain = hrefArray[2];
		var downloadTracked = false;
	
	 	// If the link is a non-document download
		if (jQuery.inArray(extension,analyticsFileTypes) != -1) {
			// Mark the link as already tracked
			downloadTracked = true;
			
			// Add the tracking code
			a.mouseup(function() {
				if ( analyticsDLEventTracking == 'yes' ) {
					_gaq.push(['_trackEvent', 'Downloads', extension.toUpperCase(), href]);
				} else
					_gaq.push(['_trackPageview', analyticsDownloadsPrefix + url]);
			});
		}

	 	// If the link is a document download.  Include check to insure link not already tracked due to file extension specified in both document and non-document arrays by mistake
		if ( (jQuery.inArray(extension,analyticsDocFileTypes) != -1)  && ( downloadTracked == false ) ) {
			// Mark the link as already tracked
			downloadTracked = true;
			
			// Add the tracking code
			a.mouseup(function() {
				if ( analyticsDocDLEventTracking == 'yes' ) {
					_gaq.push(['_trackEvent', analyticsDownloadCategory, extension.toUpperCase(), href]);
				} else
					_gaq.push(['_trackPageview', analyticsDownloadsPrefix + url]);
			});
		}
	
		// If the link is external
	 	if ( ( href.match(/^http/) ) && ( !href.match(document.domain) ) && ( !href.match('smartestenergy.com') ) && ( downloadTracked == false ) ) {
	    	// Add the tracking code
			a.mouseup(function() {
				if ( analyticsEventTracking == 'yes' ) {
					_gaq.push(['_trackEvent', analyticsOutboundCategory, href.match(/:\/\/(.[^/]+)/)[1], href]);
				} else
					_gaq.push(['_trackPageview', analyticsOutboundPrefix + url]);
			});
		}
	});

});



