{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
{\fonttbl\f0\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww21860\viewh15580\viewkind0
\deftab720
\pard\pardeftab720\ql\qnatural

\f0\fs26 \cf0 ///////\
// gaAddons.js\
// 	Author: St\'c3\'a9phane Hamel - shamel67@gmail.com - http://immeria.net\
//  Contributors:\
//	- Andy Edmonds - http://alwaysbetesting.com\
//	- Damon Gudaitis - http://www.damongudaitis.com/\
//	\
///////\
// License: Version: MPL 1.1\
// The contents of this file are subject to the Mozilla Public License Version\
// 1.1 (the "License"); you may not use this file except in compliance with\
// the License. You may obtain a copy of the License at\
// http://www.mozilla.org/MPL/\
//\
// Software distributed under the License is distributed on an "AS IS" basis,\
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\
// for the specific language governing rights and limitations under the\
// License.\
//\
// Changelog:\
//  v2.5 - Jun. 1st 2009 - Make sure to load at "onload", rewritten as an object\
//  v2.4 - Apr. 21st 2009 - Fix trackPageview() syntax\
//  v2.3 - Apr. 10th 2009 - Fix logic issues. Add tracking of mailto links. Allow tracker to be named something else than pageTracker\
//  v2.2 - Mar. 20nd 2009 - Fix issue with tracking download docs on current domain\
//  v2.1 - Jan. 22nd 2009 - Set bUseEventForOutbout and bUserEventForDownload to toggle use of Events or Page Views\
// 	v2.0 - Jan. 2009 - Use Google Analytics Events to track downloads and external links\
//  v1.0 - Inspired by the work of Justin Cutroni - Google Analytics Short Cut - http://gashortcut.com/\
///////\
\
/**\
 * @fileoverview Wrapper for gaAddons\
 */\
var bUseEventForOutbound = false; // Set to false to use trackPageview for outbount links\
var bUseEventForDownload = false; // Set to false to use trackPageview for downloads\
var gaA_fileTypes = new RegExp(/\\.(mp3|zip|pdf)$/i);\
// Indicate each file extension that needs to be tracked, gaA_fileTypes is the regular expression that matches downloadable files\
var gaA_pageTracker = pageTracker; // Should be set to the name of your tracker variable\
\
///////\
/// No need to change anything below this line\
/**\
 * @class ga Addons component.\
 *     This class encapsulates all logic for the Google Analytics addons\
 * @constructor\
 */\
var gaAddons = function()\{\
    /**\
     * startListening: add a new listner for onclick event, handle Mozilla or IE methods\
     * @param \{Object\} obj HREF object to listen to\
     * @param \{String\} evnt event type (usually "click")\
     * @param \{Object\} func Function to call when evnt is triggered\
     */\
    var startListening = function(obj, evnt, func)\{\
        if (obj.addEventListener) \
            obj.addEventListener(evnt, func, false);\
        else \
            if (obj.attachEvent) \
                obj.attachEvent("on" + evnt, func);\
    \}\
    \
    /**\
     * trackDocument: make GA call when downloading one of detected file extension, use trackEvent() or trackPageView() methods\
     * @param \{Object\} evnt Object where the event happened\
     */\
    var trackDocument = function(evnt)\{\
        bUseEventForDownload ? gaA_pageTracker._trackEvent("download", "click", (evnt.srcElement) ? "/" + evnt.srcElement.pathname : this.pathname) : gaA_pageTracker._trackPageview("/download/" + (evnt.srcElement) ? "/" + evnt.srcElement.pathname : this.pathname);\
    \}\
    \
    /**\
     * trackExternalLink: make GA call when clicking an outbound link, use trackEvent() or trackPageView() methods\
     * @param \{Object\} evnt Object where the event happened\
     */\
    var trackExternalLink = function(evnt)\{\
        var elmnt = evnt.srcElement;\
        if (elmnt) \{\
            while (elmnt.tagName != "A") \
                elmnt = elmnt.parentNode;\
            if (/http/.test(elmnt.protocol)) \
                bUseEventForOutbound ? gaA_pageTracker._trackEvent("outbound", "click", elmnt.hostname + "/" + elmnt.pathname + elmnt.search) : gaA_pageTracker._trackPageview("/outbound/" + elmnt.hostname + "/" + elmnt.pathname + elmnt.search);\
            if (elmnt.protocol == "mailto:") \
                bUseEventForOutbound ? gaA_pageTracker._trackEvent("mailto", "click", elmnt.href.replace(/mailto:/, "")) : gaA_pageTracker._trackPageview("/mailto/" + elmnt.href.replace(/mailto:/));\
        \}\
        else \{\
            if (/http/.test(this.protocol)) \
                bUseEventForOutbound ? gaA_pageTracker._trackEvent("outbound", "click", this.hostname + this.pathname + this.search) : gaA_pageTracker._trackPageview("/outbound/" + this.hostname + this.pathname + this.search);\
            if (this.protocol == "mailto:") \
                bUseEventForOutbound ? gaA_pageTracker._trackEvent("mailto", "click", this.href.replace(/mailto:/, "")) : gaA_pageTracker._trackPageview("/mailto/" + this.href.replace(/mailto:/));\
        \}\
    \}\
\
    /**\
     * Initialize gaAddons\
     */\
    if (document.getElementsByTagName && typeof gaA_pageTracker == "object") \{\
        var hrefs = document.getElementsByTagName('a');\
        for (var l = 0, m = hrefs.length; l < m; l++) \
            if (gaA_fileTypes.test(hrefs[l].pathname)) \
                startListening(hrefs[l], "click", trackDocument);\
            else \
                if (hrefs[l].hostname != location.hostname) \
                    startListening(hrefs[l], "click", trackExternalLink);\
    \}\
\}\
\
if (window.addEventListener) // Standard\
    window.addEventListener('load', function()\{\
        gaAddons()\
    \}, false);\
else \
    if (window.attachEvent) // IE\
        window.attachEvent('onload', function()\{\
            gaAddons()\
        \});\
/// EOF ///}
