function gaUtils(d)
{this._baseDomain="";this.BannerParams=new Array('ac');this.PageTracker=null;this._dTypes=new Array(".pdf",".doc",".docx",".xls",".xlsx",".exe",".zip",".rtf",".jpg",".png",".gif",".tiff",".tif",".mp3",".wav",".swf",".mpg");this._bIsMember=0;this._linkerSites=new Array();if(d!="")
this._baseDomain=d;this._customVarSlots=new Object();this._customVarSlots["userseg"]={slot:1,scope:1,pageview:true,url:"/tracking/usersegment"};this._customVarSlots["banner"]={slot:2,scope:3,pageview:false};this._customVarSlots["adwordskeyword"]={slot:3,scope:2,pageview:false};this._customVarSlots["fcampaign"]={slot:4,scope:1,pageview:false};this.Settings=new Object();this.Settings={linktracking:{trackexternal:true,trackemail:true,externalbase:"/external/",emailbase:"/email/",externalpageview:true,emailpageview:true},trackbanners:true,trackfirstcampaign:true,trackrightclicks:false,debug:false,autotrackmembers:true,autoinitlinks:true,trackadwordsquery:true};}
gaUtils.prototype.Initialise=function()
{if(typeof(pageTracker)!='undefined')
this.PageTracker=pageTracker;if(document.location.hash.indexOf('debug')>=0)
{this.Settings.debug=true;this.SetDebug(true);}
if(this._baseDomain=="")
{var cDomain=document.location.hostname.toLowerCase();var dp=cDomain.split(".");if(dp[dp.length-1].length==2&&dp.length>=3)
this._baseDomain=dp[dp.length-3]+"."+dp[dp.length-2]+"."+dp[dp.length-1];else if(dp[dp.length-1].length>=3)
this._baseDomain=dp[dp.length-2]+"."+dp[dp.length-1];}
if(this.Settings.autoinitlinks)
this._initLinks();if(this.Settings.autotrackmembers)
this._testMember();if(this.Settings.trackbanners==true)
this._checkBannerClick();if(this.Settings.trackfirstcampaign)
this._checkFirstCampaign();if(document.location.search.indexOf('gclid')>=0&&this.Settings.trackadwordsquery)
this._getAdWordsActualQuery();if(typeof(this["CustomInit"])=="function")
{this.CustomInit();}}
gaUtils.prototype.SetDebug=function(val)
{this.Settings.debug=val;}
gaUtils.prototype.SetBaseDomain=function(val)
{this._baseDomain=val;this._initLinks();}
gaUtils.prototype.RegisterPageTracker=function(obj){this.PageTracker=obj;}
gaUtils.prototype.AddLinkedSite=function(d)
{this._linkerSites.push(d);}
gaUtils.prototype.TrackLink=function(t,r,p)
{myDest=t;var isExternal=false;var isEmail=false;var myExtMatch=myDest.match(/^http[s]?:\/\/(.*)/);var myEmMatch=myDest.match(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/);if(myExtMatch&&myDest.indexOf(this._baseDomain)<0)
{if(this.Settings.linktracking.externalpageview)
t=this.Settings.linktracking.externalbase+myExtMatch[1];else
t=myExtMatch[1];isExternal=true;}
else if(myEmMatch)
{if(this.Settings.linktracking.emailpageview)
t=this.Settings.linktracking.emailbase+myEmMatch[1];else
t=myEmMatch[1];isEmail=true;}
else
t=t.replace(/http[s]?:\/\/[^\/]*/,"");if(p!=null)
this.PageTracker=p;if(this.PageTracker!=null)
{try{if(this.Settings.debug==true)
alert(t);if((isExternal&&this.Settings.linktracking.externalpageview)||(isEmail&&this.Settings.linktracking.emailpageview))
this.PageTracker._trackPageview(t);else if(isExternal||isEmail)
this.PageTracker._trackEvent("External Links","Clicks",t);else
this.PageTracker._trackPageview(t);}
catch(err){}}
if(r==true)
{setTimeout("document.location.href=myDest;",500);return false;}
else
return true;}
gaUtils.prototype.BannerClick=function(b)
{if(this.Settings.trackbanners!=true)
return;try
{if(typeof(this._customVarSlots["banner"])!="undefined")
{this.PageTracker._setCustomVar(this._customVarSlots["banner"].slot,"banner",b,this._customVarSlots["banner"].scope);}
this.PageTracker._trackEvent("Banners","Clicks",b);}catch(err){}}
gaUtils.prototype.TrackUserSegment=function(segment,val)
{var mVal="yes";if(val!=null)
mVal=val;try
{if(this.PageTracker!=null)
{if(this.Settings.debug)
alert("Segment: "+segment);if(typeof(this._customVarSlots["userseg"])!="undefined")
{this.PageTracker._setCustomVar(this._customVarSlots["userseg"].slot,segment,mVal,this._customVarSlots["userseg"].scope);if(this._customVarSlots["userseg"].pageview)
{var url="/tracking/usersegment";if(typeof(this._customVarSlots["userseg"].url)!="undefined")
url=this._customVarSlots["userseg"].url;this.PageTracker._trackPageview(url);}
else
this.PageTracker._trackEvent(segment,"Visit");}}}
catch(err){}}
gaUtils.prototype.TrackMember=function(val)
{this.TrackUserSegment("member",val);}
gaUtils.prototype._trim=function(val){return val.replace(/^\s+|\s+$/g,'');}
gaUtils.prototype._initLinks=function()
{var mL=document.getElementsByTagName("a");var myRegexp=/^http[s]?:\/\/(.*)/;for(var i=0;i<mL.length;i++)
{var myRef=mL[i].href.toLowerCase();if(myRef==undefined)
continue;var gau=this;var myMatch=myRegexp.exec(myRef);var lchar=myRef.substring(myRef.length-1);if((lchar=="#"&&mL[i].onclick!="")||(myMatch!=undefined&&myMatch.length>1&&this._baseDomain!=undefined&&myRef.indexOf(this._baseDomain)<0))
{if(this._useLinker(mL[i].hostname))
this._addEvent(mL[i],"click",function(){gau._gaAddLinker(this);return false;});else
this._addEvent(mL[i],"click",function(){gau.TrackLink(this.href,false);});}
else if(myRef.toLowerCase().indexOf("mailto:")>=0)
{this._addEvent(mL[i],"click",function(){gau.TrackLink(this.href.substring(7),false);});}
else
{for(x=0;x<this._dTypes.length;x++)
{if(myRef.indexOf(this._dTypes[x])>-1)
{if(mL[i].target!="")
this._addEvent(mL[i],"click",function(){gau.TrackLink(this.href,false);});else
this._addEvent(mL[i],"click",function(){gau.TrackLink(this.href,true);return false;});if(this.Settings.trackrightclicks=true)
this._addEvent(mL[i],"mouseup",function(e){gau._checkRightClick(e,this);});}}}}}
gaUtils.prototype._checkRightClick=function(e,o,pt)
{var button;if(e.which==null)
button=(e.button<2)?"LEFT":((e.button==4)?"MIDDLE":"RIGHT");else
button=(e.which<2)?"LEFT":((e.which==2)?"MIDDLE":"RIGHT");if(button=="RIGHT")
{this.TrackLink(o.href,false,pt);}}
gaUtils.prototype._useLinker=function(d)
{var ul=false;if(this._linkerSites.length>0)
{for(var i=0;i<this._linkerSites.length;i++)
{if(d.toLowerCase().indexOf(this._linkerSites[i])>=0)
{ul=true;break;}}}
return ul;}
gaUtils.prototype._gaAddLinker=function(o,pt)
{if(pt!=null)
this.PageTracker=pt;try
{var l=o.href;o.href=this.PageTracker._getLinkerUrl(l);return false;}
catch(err)
{return true}}
gaUtils.prototype._getHashParam=function(strParam){if(strParam=="")
return"";var _pstr=document.location.hash.substring(1);var _uparams=_pstr.split("&");for(var i=0;i<_uparams.length;i++){var np=_uparams[i].split("=");if(this._trim(np[0].toLowerCase())==strParam.toLowerCase())
{return this._trim(np[1]);break;}}
return"";}
gaUtils.prototype._getParam=function(strParam){var _pstr=document.location.search.substring(1);var _uparams=_pstr.split("&");for(i=0;i<_uparams.length;i++){var np=_uparams[i].split("=");if(this._trim(np[0].toLowerCase())==strParam.toLowerCase())
return this._trim(np[1]);}
return"";}
gaUtils.prototype._setCookie=function(cookieName,cookieValue,expire,strDomain){var pdm="";if(strDomain&&strDomain!="")
pdm=" domain="+strDomain+";";if((typeof(expire)).toLowerCase()=="date")
document.cookie=cookieName+"="+escape(cookieValue)+";expires="+expire.toGMTString()+"; path=/;"+pdm;else
document.cookie=cookieName+"="+escape(cookieValue)+"; path=/;"+pdm;}
gaUtils.prototype._getCookie=function(strParam){var _ucookies=document.cookie.split(";");for(i=0;i<_ucookies.length;i++){var np=_ucookies[i].split("=");if(this._trim(np[0].toLowerCase())==strParam.toLowerCase())
{var val="";for(i=1;i<np.length;i++)
{if(i>1)
val+="=";val+=np[i];}
return this._trim(val);}}
return"";}
gaUtils.prototype._testMember=function()
{var utmv=this._getCookie('__utmv');if(utmv!=""&&utmv.indexOf('member')>0)
{this._bIsMember=1;return true;}
var isM=0;if(typeof(window['_galoginStatus'])!="undefined")
{try
{if(_galoginStatus.toUpperCase()=="SUCCESS")
isM=1;}
catch(err){}}
if(typeof(window['_gaismember'])!="undefined")
{try
{if(_gaismember==1)
isM=1;}
catch(err){}}
var mq=this._getParam('im');if((mq!=""&&mq.toLowerCase().indexOf('guest')<0)||isM==1)
{this._bIsMember=1;this.TrackMember();}}
gaUtils.prototype.AddDownloadType=function(t)
{if(t!="")
{if(t.substr(0,1)!=".")
t="."+t;this._dTypes[this._dTypes.length]=t;}}
gaUtils.prototype._checkBannerClick=function(params)
{if(this.Settings.trackbanners!=true)
return;if(params!=null)
this._addBannerParams(params);for(i=0;i<this.BannerParams.length;i++)
{var p=this.BannerParams[i];var b=this._getParam(p);var c=this._getHashParam(p);if(b!=""||c!="")
{if(b=="")
b=c;if(this.Settings.debug)
alert("Banner/Link: "+b);this.BannerClick(b);}}}
gaUtils.prototype._addBannerParams=function(params)
{if(this.BannerParams==undefined)
this.BannerParams=new Array();var bIsOK=true;if(params instanceof Array)
{for(var i=0;i<params.length;i++)
{bIsOK=true;for(var x=0;x<this.BannerParams.length;x++)
{if(this.BannerParams[x]==params[i])
bIsOK=false;}
if(bIsOK==true)
this.BannerParams.push(params[i]);}}
else
{bIsOK=true;for(var x=0;x<this.BannerParams.length;x++)
{if(this.BannerParams[x]==params)
bIsOK=false;}
if(bIsOK==true)
this.BannerParams.push(params);}}
gaUtils.prototype._getAdWordsActualQuery=function()
{var dr=document.referrer;if(dr==null||dr=="")
return;if(dr.toLowerCase().indexOf('google')>0)
{var m=dr.match(/q=([^&$]*?)[&$]/i);if(m.length>1&&typeof(this._customVarSlots["adwordskeyword"])!="undefined")
{var q=unescape(m[1]);q=q.replace('+',' ');this.PageTracker._setCustomVar(this._customVarSlots["adwordskeyword"].slot,"AdWordsKeyword",q,this._customVarSlots["adwordskeyword"].scope);this.PageTracker._trackEvent("AdWords Keywords",q);}}}
gaUtils.prototype._checkFirstCampaign=function(cname)
{var utmv=this._getCookie('__utmv');if(utmv!=""&&utmv.indexOf('1stcmp')>0)
return true;var utmc=this._getParam('utm_campaign');if(utmc!="")
{try
{if(typeof(this._customVarSlots["fcampaign"])!="undefined")
{this.PageTracker._setCustomVar(this._customVarSlots["fcampaign"].slot,"1stcmp",utmc,this._customVarSlots["fcampaign"].scope);if(this._customVarSlots["fcampaign"].pageview==1)
this.PageTracker._trackPageview("/events/setfirstcampaign");else
this.PageTracker._trackEvent("First Campaign","Clicks",utmc);}}
catch(err){}}}
gaUtils.prototype._addEvent=function(obj,type,fn)
{if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type,obj[type+fn]);}else
obj.addEventListener(type,fn,false);}
gaUtils.prototype._removeEvent=function(obj,type,fn)
{if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;}else
obj.removeEventListener(type,fn,false);}