//-----------------------------------------------------------------------------
// taglinks.js - 10121
// Ensure links to files and external links are tracked via Google Analytics
//-----------------------------------------------------------------------------
$(function() {
    track_files();
});

function track_files() {
    $('a').each(function() {
        if (should_track(this)) {
            $(this).click(function() {
                var str = get_file_tracking_string(this);
                _gaq.push(['_trackPageview', str]);
            });
        }
    });
}

function should_track(link)
{
    return link.protocol == 'mailto:' || $(link).hasClass('pseudo-external') || link.hostname != location.host
        || link.pathname.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/);
}

function get_file_tracking_string(link)
{
    var file_path = '';

    if (link.protocol == 'mailto:')
    {
        file_path = '/mail/' + $(link).attr('href').substr(7);
    }
    else
    {
        if (location.host != link.hostname)
        {
            var host = trim(link.hostname, '/');
            file_path = "/external/" + host;
        }

        var path = trim(link.pathname, '/');

        if (path)
            file_path += '/' + path;
    }

    return file_path;
}

/* Remove specified character from beginning or end of string */
function trim(str, chr)
{
    if (str[0] == chr)
        str = str.substring(1);
 
    if (str[str.length - 1] == chr)
        str = str.substring(0, str.length - 1);
 
    return str;
}
