﻿/* WarpzGA 1.0 (June 2010)
 *
 * Warpz Event Tracking for Google Analytics (async)
 *
 * By Fini Alring <bytefarmers.com/log/>
 *
 * Initially based on code from Google Analyticator by Ronald Heft (ronaldheft.com)
 *
 * Modified heavily for added functionality
 *
 * - Tracks outbound, mailto and download links.
 * - Can use pageview and/or events.
 * - Disregards subdomains (www.domain.com and domain.com will not count as outbound).
 * - Includes subject in mailto if available.
 * - Tested with jquery 1.2 - 1.3 and 1.4
 */


var warpzGA = {};

warpzGA.analyticsFileTypes = ['doc','docx','exe','pdf','ppt','pptx','tgz','zip',
    'gz','dmg','xls','xlsx','mp3','js','zip7','rar','odm','odt','ods','odp',
    'odg','odf','csv','mkv','avi','divx','mpg','mpeg','mov','qt','txt','rtf',
    'tex','rss','sxw'];

warpzGA.gaEventTracking = true;
warpzGA.gaVirtualPageTracking = true;
warpzGA.internalDomains = ['dataloen2.dk']; //Eventuelle sub-domæner skal tilføjes denne liste
warpzGA.gaDownloadsEvent = 'Downloads';
warpzGA.gaDownloadsPrefix = '/downloads';
warpzGA.gaOutboundEvent = 'Outbound Traffic';
warpzGA.gaOutboundPrefix = '/outbound/';
warpzGA.gaMailEvent = "Mail To";
warpzGA.gaMailPrefix = '/mailto/';

/*
// Use for debugging.
var _gaq = [];
_gaq.push = function(input) {
    console.log(input);
}
*/

jQuery(document).ready(function() {

	jQuery('a').each(function() {

		var link = jQuery(this);
		var href = link.attr('href');

		// Skip empty href and anchors
		if ( (href == undefined) || (href == '#') ) {

			return;
                }

                // Strip protocols
		var url = href.replace('http://','').replace('https://','');
                // Get file extension
                var extension = url.substring( url.lastIndexOf('.') + 1 ).toLowerCase();
                // Get domain and strip subdomain
                var domain = url.substring( 0, url.indexOf('/') );
                var domainParts = domain.split('.').reverse();
                var mainDomain = domainParts[1] + '.' + domainParts[0];
                // grab an extra part on .co. domains
                if(domainParts[1] === 'co') {
                    mainDomain = domainParts[2] + '.' + domainParts[1] + '.' + domainParts[0]
                }

	 	// If the link is a download
		if (jQuery.inArray(extension, warpzGA.analyticsFileTypes) != -1) {

                    link.click(function() {

                        if ( warpzGA.gaEventTracking ) {

                            _gaq.push(['_trackEvent', warpzGA.gaDownloadsEvent, extension.toUpperCase(), href]);
                        }

                        if( warpzGA.gaVirtualPageTracking ) {

                            _gaq.push(['_trackPageview', warpzGA.gaDownloadsPrefix + url]);
                        }
                    });

		} else if ( ( href.match(/^http/) ) && ( jQuery.inArray(mainDomain, warpzGA.internalDomains) == -1 ) ) { // If the link is external

                    link.click(function() {

                        if ( warpzGA.gaEventTracking ) {

                                _gaq.push(['_trackEvent', warpzGA.gaOutboundEvent, href.match(/:\/\/(.[^/]+)/)[1], href]);
                        }

                        if( warpzGA.gaVirtualPageTracking ) {

//                                _gaq.push(['_trackPageview', warpzGA.gaOutboundPrefix + url]);
                        }
                    });

		} else if ( href.match(/^mailto/) ) { // If the link is mailto

                    link.click(function() {

                        if ( warpzGA.gaEventTracking ) {

                            var mailParts = href.replace('mailto:','').split('?');

                            var email = mailParts[0];
                            var subject = '';

                            if(mailParts.length > 1) {

                                subject = mailParts[1].substring( mailParts[1].indexOf('subject=') + 8).replace(/\+/g,' ').replace(/%20/g,' ');
                            }

                            _gaq.push(['_trackEvent', warpzGA.gaMailEvent, email, subject]);
                        }

                        if( gaVirtualPageTracking ) {

//                            _gaq.push(['_trackPageview', warpzGA.gaMailPrefix + url.replace('mailto:','')]);
                        }
                    });
		}
	});

});


/*
// Tracking Google Analytics Page Content Category Tagging
*/


// hent menu-knappen som slutter p� "_on.gif" (vi forventer her at der
// kun bliver fundet en enkelt knap som slutter p� "_on.gif")
var valgte_menuknap = $j("img[src*='/Images/Multidata/menu_'][src$='_on.gif']")[0]

// hvis en s�dan menuknap blev fundet
if(valgte_menuknap != null) {
  // split filnavnet p� menuknappen op s� vi dropper
  // "/images/menu_" og "_on.gif"
  valgte_kategori =
      valgte_menuknap.src.split("/").pop().split("_")[1]
} else {
  valgte_kategori = "ingen_kategori"
} 

