﻿// Utility functions for GA

// make the javascript sleeping
function sc_sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

 
// google analytics document tracking
var gaA_fileTypes = new RegExp(/\.(doc*|xls*|ppt*|exe|zip|pdf|xpi)$/i); // Indicate each file extension that needs to be tracked, gaA_fileTypes is the regular expression that matches downloadable files
var gaA_pageTracker = null; // Should be set to the name of your tracker variable

var gaAddons = function(){
    var startListening = function(obj, evnt, func){
        if (obj.addEventListener) 
            obj.addEventListener(evnt, func, false);
        else 
            if (obj.attachEvent) 
                obj.attachEvent("on" + evnt, func);
    }

     
    var trackDocument = function(evnt){
				var e = (evnt.srcElement) ? evnt.srcElement : this;
				while (e.tagName != "A") {e = e.parentNode;}
				var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
				if (e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;
				// if (e.hostname != location.host) lnk = "/external/" + e.hostname + lnk;
				if (typeof(pageTracker) == "object") 
				{
					pageTracker._trackPageview(lnk); 
					// New code for GATC
					_gaq.push(['_trackPageview', lnk]);					
				  sc_sleep(200); // give time to the ga request to complete
				}
		} 
		
		
    /**
     * 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) || (hrefs[l].innerHTML.indexOf("pdf.gif") != -1) || (hrefs[l].innerHTML.indexOf("doc.gif") != -1) || (hrefs[l].innerHTML.indexOf("ppt.gif") != -1) || (hrefs[l].innerHTML.indexOf("xls.gif") != -1) )
            startListening(hrefs[l], "click", trackDocument);
    }
}

// to track documents, add a call to this function just after google analytics code initialisation
function addGADocumentTracking(){
	gaA_pageTracker=pageTracker;
	gaAddons();
}

