﻿/*
 * Javascript to track file downloads and external links in Google Analytics
 *
 * Written by Nayan Suchak for Radley Yeldar on 2 May 2008. Based on
 * similar functionality written by Colm McBarron, colm.mcbarron@iqcontent.com
 * 
 * 19-10-2009 Added 'filedownloads' prefix for internal urls to aid tracking - AK
*/

var hrefs = document.getElementsByTagName("a");
for (var hrefIndex = 0; hrefIndex < hrefs.length; hrefIndex++) {
    try {
        if (location.host == hrefs[hrefIndex].hostname) {
            //Is it a link to an item in the Sitecore Media Library
            if (hrefs[hrefIndex].pathname.indexOf('~/media/') != -1) {
                addTrackerListener(hrefs[hrefIndex]);
            }
        } else {
            addTrackerListener(hrefs[hrefIndex]);
        }
    }
    catch (err) { }
}

function addTrackerListener(obj) {
    if (obj.addEventListener) { // W3C event registration model
        obj.addEventListener('click', trackFiles, true);
    } else if (obj.attachEvent) { // Microsoft's event registration model
        obj.attachEvent('onclick', trackFiles);
    }
}

function trackFiles(event) {
    var path = '';
    
    if (location.host != (event.srcElement ? event.srcElement.hostname : this.hostname)) {
        path = path + '/exlinks/' + ((event.srcElement) ? event.srcElement.hostname : this.hostname);
        path = path.replace('/exlinks//','/exlinks/'); //Remove extra slash (browser inconsistancy)
    } else {
        path = path + '/filedownloads/' + ((event.srcElement) ? event.srcElement.pathname : this.pathname);
        path = path.replace('/filedownloads//','/filedownloads/'); //Remove extra slash (browser inconsistancy)
    };
    
    
    CCTracker._trackPageview(path); // Log to Corporate Comm's Account
    masterTracker._trackPageview(path); // Log to 'Master Intranet' Account
}
