[JavaScript] Reading Google Analytics Urchin Module Source Code
I tried reading the Google Analytics Urchin Module source code, which is no longer used today, as part of studying access analysis.
It might be interesting to read it along with Dan Kogai’s blog post.
・404 Blog Not Found:Google Analytics Analysis and the Lie of Dwell Time
Official article describing the differences between urchin.js and the currently running asynchronous JavaScript.
・Differences Between urchin.js and Asynchronous JavaScript - Website Optimizer Help
■ Source Code: http://www.google-analytics.com/urchin.js
//-- Google Analytics Urchin Module
//-- Copyright 2007 Google, All Rights Reserved.
//-- Urchin On Demand Settings ONLY
var _uacct=""; // set up the Urchin Account
var _userv=1; // service mode (0=local,1=remote,2=both)
//-- UTM User Settings
var _ufsc=1; // set client info flag (1=on|0=off)
var _udn="auto"; // (auto|none|domain) set the domain name for cookies
var _uhash="on"; // (on|off) unique domain hash for cookies
var _utimeout="1800"; // set the inactive session timeout in seconds
var _ugifpath="/__utm.gif"; // set the web path to the __utm.gif file
var _utsp="|"; // transaction field separator
var _uflash=1; // set flash version detect option (1=on|0=off)
var _utitle=1; // set the document title detect option (1=on|0=off)
var _ulink=0; // enable linker functionality (1=on|0=off)
var _uanchor=0; // enable use of anchors for campaign (1=on|0=off)
var _utcp="/"; // the cookie path for tracking
var _usample=100; // The sampling % of visitors to track (1-100).
//-- UTM Campaign Tracking Settings
var _uctm=1; // set campaign tracking module (1=on|0=off)
var _ucto="15768000"; // set timeout in seconds (6 month default)
var _uccn="utm_campaign"; // name
var _ucmd="utm_medium"; // medium (cpc|cpm|link|email|organic)
var _ucsr="utm_source"; // source
var _uctr="utm_term"; // term/keyword
var _ucct="utm_content"; // content
var _ucid="utm_id"; // id number
var _ucno="utm_nooverride"; // don't override
//-- Auto/Organic Sources and Keywords
var _uOsr=new Array();
var _uOkw=new Array();
_uOsr[0]="google"; _uOkw[0]="q";
_uOsr[1]="yahoo"; _uOkw[1]="p";
_uOsr[2]="msn"; _uOkw[2]="q";
_uOsr[3]="aol"; _uOkw[3]="query";
_uOsr[4]="aol"; _uOkw[4]="encquery";
_uOsr[5]="lycos"; _uOkw[5]="query";
_uOsr[6]="ask"; _uOkw[6]="q";
_uOsr[7]="altavista"; _uOkw[7]="q";
_uOsr[8]="netscape"; _uOkw[8]="query";
_uOsr[9]="cnn"; _uOkw[9]="query";
_uOsr[10]="looksmart"; _uOkw[10]="qt";
_uOsr[11]="about"; _uOkw[11]="terms";
_uOsr[12]="mamma"; _uOkw[12]="query";
_uOsr[13]="alltheweb"; _uOkw[13]="q";
_uOsr[14]="gigablast"; _uOkw[14]="q";
_uOsr[15]="voila"; _uOkw[15]="rdata";
_uOsr[16]="virgilio"; _uOkw[16]="qs";
_uOsr[17]="live"; _uOkw[17]="q";
_uOsr[18]="baidu"; _uOkw[18]="wd";
_uOsr[19]="alice"; _uOkw[19]="qs";
_uOsr[20]="yandex"; _uOkw[20]="text";
_uOsr[21]="najdi"; _uOkw[21]="q";
_uOsr[22]="aol"; _uOkw[22]="q";
_uOsr[23]="club-internet"; _uOkw[23]="query";
_uOsr[24]="mama"; _uOkw[24]="query";
_uOsr[25]="seznam"; _uOkw[25]="q";
_uOsr[26]="search"; _uOkw[26]="q";
_uOsr[27]="wp"; _uOkw[27]="szukaj";
_uOsr[28]="onet"; _uOkw[28]="qt";
_uOsr[29]="netsprint"; _uOkw[29]="q";
_uOsr[30]="google.interia"; _uOkw[30]="q";
_uOsr[31]="szukacz"; _uOkw[31]="q";
_uOsr[32]="yam"; _uOkw[32]="k";
_uOsr[33]="pchome"; _uOkw[33]="q";
_uOsr[34]="kvasir"; _uOkw[34]="searchExpr";
_uOsr[35]="sesam"; _uOkw[35]="q";
_uOsr[36]="ozu"; _uOkw[36]="q";
_uOsr[37]="terra"; _uOkw[37]="query";
_uOsr[38]="nostrum"; _uOkw[38]="query";
_uOsr[39]="mynet"; _uOkw[39]="q";
_uOsr[40]="ekolay"; _uOkw[40]="q";
_uOsr[41]="search.ilse"; _uOkw[41]="search_for";
_uOsr[42]="bing"; _uOkw[42]="q";
//-- Auto/Organic Keywords to Ignore
var _uOno=new Array();
//_uOno[0]="urchin";
//_uOno[1]="urchin.com";
//_uOno[2]="www.urchin.com";
//-- Referral domains to Ignore
var _uRno=new Array();
//_uRno[0]=".urchin.com";
//-- **** Don't modify below this point ***
var _uff,_udh,_udt,_ubl=0,_udo="",_uu,_ufns=0,_uns=0,_ur="-",_ufno=0,_ust=0,_ubd=document,_udl=_ubd.location,_udlh="",_uwv="1.4";
var _ugifpath2="http://www.google-analytics.com/__utm.gif";
if (_udl.hash) _udlh=_udl.href.substring(_udl.href.indexOf('#'));
if (_udl.protocol=="https:") _ugifpath2="https://ssl.google-analytics.com/__utm.gif";
if (!_utcp || _utcp=="") _utcp="/";
function urchinTracker(page) {
if (_udl.protocol=="file:") return;
if (_uff && (!page || page=="")) return;
var a,b,c,xx,v,z,k,x="",s="",f=0,nv=0;
var nx=" expires="+_uNx()+";";
var dc=_ubd.cookie;
_udh=_uDomain();
if (!_uVG()) return;
_uu=Math.round(Math.random()*2147483647);
_udt=new Date();
_ust=Math.round(_udt.getTime()/1000);
a=dc.indexOf("__utma="+_udh+".");
b=dc.indexOf("__utmb="+_udh);
c=dc.indexOf("__utmc="+_udh);
if (_udn && _udn!="") { _udo=" domain="+_udn+";"; }
if (_utimeout && _utimeout!="") {
x=new Date(_udt.getTime()+(_utimeout*1000));
x=" expires="+x.toGMTString()+";";
}
if (_ulink) {
if (_uanchor && _udlh && _udlh!="") s=_udlh+"&";
s+=_udl.search;
if(s && s!="" && s.indexOf("__utma=")>=0) {
if (!(_uIN(a=_uGC(s,"__utma=","&")))) a="-";
if (!(_uIN(b=_uGC(s,"__utmb=","&")))) b="-";
if (!(_uIN(c=_uGC(s,"__utmc=","&")))) c="-";
v=_uGC(s,"__utmv=","&");
z=_uGC(s,"__utmz=","&");
k=_uGC(s,"__utmk=","&");
xx=_uGC(s,"__utmx=","&");
if ((k*1) != ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) {_ubl=1;a="-";b="-";c="-";xx="-";z="-";v="-";}
if (a!="-" && b!="-" && c!="-") f=1;
else if(a!="-") f=2;
}
}
if(f==1) {
_ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
_ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo;
_ubd.cookie="__utmc="+c+"; path="+_utcp+";"+_udo;
} else if (f==2) {
a=_uFixA(s,"&",_ust);
_ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
_ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo;
_ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo;
_ufns=1;
} else if (a>=0 && b>=0 && c>=0) {
b = _uGC(dc,"__utmb="+_udh,";");
b = ("-" == b) ? _udh : b;
_ubd.cookie="__utmb="+b+"; path="+_utcp+";"+x+_udo;
} else {
if (a>=0) a=_uFixA(_ubd.cookie,";",_ust);
else {
a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";
nv=1;
}
_ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo;
_ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo;
_ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo;
_ufns=1;
}
if (_ulink && xx && xx!="" && xx!="-") {
xx=_uUES(xx);
if (xx.indexOf(";")==-1) _ubd.cookie="__utmx="+xx+"; path="+_utcp+";"+nx+_udo;
}
if (_ulink && v && v!="" && v!="-") {
v=_uUES(v);
if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo;
}
var wc=window;
var c=_ubd.cookie;
if(wc && wc.gaGlobal && wc.gaGlobal.dh==_udh){
var g=wc.gaGlobal;
var ua=c.split("__utma="+_udh+".")[1].split(";")[0].split(".");
if(g.sid)ua[3]=g.sid;
if(nv>0){
ua[2]=ua[3];
if(g.vid){
var v=g.vid.split(".");
ua[0]=v[0];
ua[1]=v[1];
}
}
_ubd.cookie="__utma="+_udh+"."+ua.join(".")+"; path="+_utcp+";"+nx+_udo;
}
_uInfo(page);
_ufns=0;
_ufno=0;
if (!page || page=="") _uff=1;
}
function _uGH() {
var hid;
var wc=window;
if (wc && wc.gaGlobal && wc.gaGlobal.hid) {
hid=wc.gaGlobal.hid;
} else {
hid=Math.round(Math.random()*0x7fffffff);
if (!wc.gaGlobal) wc.gaGlobal={};
wc.gaGlobal.hid=hid;
}
return hid;
}
function _uInfo(page) {
var p,s="",dm="",pg=_udl.pathname+_udl.search;
if (page && page!="") pg=_uES(page,1);
_ur=_ubd.referrer;
if (!_ur || _ur=="") { _ur="-"; }
else {
dm=_ubd.domain;
if(_utcp && _utcp!="/") dm+=_utcp;
p=_ur.indexOf(dm);
if ((p>=0) && (p<=8)) { _ur="0"; }
if (_ur.indexOf("[")==0 && _ur.lastIndexOf("]")==(_ur.length-1)) { _ur="-"; }
}
s+="&utmn="+_uu;
if (_ufsc) s+=_uBInfo();
if (_uctm) s+=_uCInfo();
if (_utitle && _ubd.title && _ubd.title!="") s+="&utmdt="+_uES(_ubd.title);
if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname);
if (_usample && _usample != 100) s+="&utmsp="+_uES(_usample);
s+="&utmhid="+_uGH();
s+="&utmr="+_ur;
s+="&utmp="+pg;
if ((_userv==0 || _userv==2) && _uSP()) {
var i=new Image(1,1);
i.src=_ugifpath+"?"+"utmwv="+_uwv+s;
i.onload=function() { _uVoid(); }
}
if ((_userv==1 || _userv==2) && _uSP()) {
var i2=new Image(1,1);
i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS();
i2.onload=function() { _uVoid(); }
}
return;
}
function _uVoid() { return; }
function _uCInfo() {
if (!_ucto || _ucto=="") { _ucto="15768000"; }
if (!_uVG()) return;
var c="",t="-",t2="-",t3="-",o=0,cs=0,cn=0,i=0,z="-",s="";
if (_uanchor && _udlh && _udlh!="") s=_udlh+"&";
s+=_udl.search;
var x=new Date(_udt.getTime()+(_ucto*1000));
var dc=_ubd.cookie;
x=" expires="+x.toGMTString()+";";
if (_ulink && !_ubl) {
z=_uUES(_uGC(s,"__utmz=","&"));
if (z!="-" && z.indexOf(";")==-1) { _ubd.cookie="__utmz="+z+"; path="+_utcp+";"+x+_udo; return ""; }
}
z=dc.indexOf("__utmz="+_udh+".");
if (z>-1) { z=_uGC(dc,"__utmz="+_udh+".",";"); }
else { z="-"; }
t=_uGC(s,_ucid+"=","&");
t2=_uGC(s,_ucsr+"=","&");
t3=_uGC(s,"gclid=","&");
if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) {
if (t!="-" && t!="") c+="utmcid="+_uEC(t);
if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); }
if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); }
t=_uGC(s,_uccn+"=","&");
if (t!="-" && t!="") c+="|utmccn="+_uEC(t);
else c+="|utmccn=(not+set)";
t=_uGC(s,_ucmd+"=","&");
if (t!="-" && t!="") c+="|utmcmd="+_uEC(t);
else c+="|utmcmd=(not+set)";
t=_uGC(s,_uctr+"=","&");
if (t!="-" && t!="") c+="|utmctr="+_uEC(t);
else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); }
t=_uGC(s,_ucct+"=","&");
if (t!="-" && t!="") c+="|utmcct="+_uEC(t);
t=_uGC(s,_ucno+"=","&");
if (t=="1") o=1;
if (z!="-" && o==1) return "";
}
if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1) return ""; }
if (c=="-" || c=="") { if (_ufns==1) c=_uRef(); if (z!="-" && _ufno==1) return ""; }
if (c=="-" || c=="") {
if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; }
if (c=="-" || c=="") return "";
}
if (z!="-") {
i=z.indexOf(".");
if (i>-1) i=z.indexOf(".",i+1);
if (i>-1) i=z.indexOf(".",i+1);
if (i>-1) i=z.indexOf(".",i+1);
t=z.substring(i+1,z.length);
if (t.toLowerCase()==c.toLowerCase()) cs=1;
t=z.substring(0,i);
if ((i=t.lastIndexOf(".")) > -1) {
t=t.substring(i+1,t.length);
cn=(t*1);
}
}
if (cs==0 || _ufns==1) {
t=_uGC(dc,"__utma="+_udh+".",";");
if ((i=t.lastIndexOf(".")) > 9) {
_uns=t.substring(i+1,t.length);
_uns=(_uns*1);
}
cn++;
if (_uns==0) _uns=1;
_ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo;
}
if (cs==0 || _ufns==1) return "&utmcn=1";
else return "&utmcr=1";
}
function _uRef() {
if (_ur=="0" || _ur=="" || _ur=="-") return "";
var i=0,h,k,n;
if ((i=_ur.indexOf("://"))<0 || _uGCse()) return "";
h=_ur.substring(i+3,_ur.length);
if (h.indexOf("/") > -1) {
k=h.substring(h.indexOf("/"),h.length);
if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?"));
h=h.substring(0,h.indexOf("/"));
}
h=h.toLowerCase();
n=h;
if ((i=n.indexOf(":")) > -1) n=n.substring(0,i);
for (var ii=0;ii<_uRno.length;ii++) {
if ((i=n.indexOf(_uRno[ii].toLowerCase())) > -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; }
}
if (h.indexOf("www.")==0) h=h.substring(4,h.length);
return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral";
}
function _uOrg(t) {
if (_ur=="0" || _ur=="" || _ur=="-") return "";
var i=0,h,k;
if ((i=_ur.indexOf("://"))<0 || _uGCse()) return "";
h=_ur.substring(i+3,_ur.length);
if (h.indexOf("/") > -1) {
h=h.substring(0,h.indexOf("/"));
}
for (var ii=0;ii<_uOsr.length;ii++) {
if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {
if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) {
k=_ur.substring(i+_uOkw[ii].length+2,_ur.length);
if ((i=k.indexOf("&")) > -1) k=k.substring(0,i);
for (var yy=0;yy<_uOno.length;yy++) {
if (_uOno[yy].toLowerCase()==k.toLowerCase()) { _ufno=1; break; }
}
if (t) return _uEC(k);
else return "utmccn=(organic)|utmcsr="+_uEC(_uOsr[ii])+"|"+"utmctr="+_uEC(k)+"|utmcmd=organic";
}
}
}
return "";
}
function _uGCse() {
var h,p;
h=p=_ur.split("://")[1];
if(h.indexOf("/")>-1) {
h=h.split("/")[0];
p=p.substring(p.indexOf("/")+1,p.length);
}
if(p.indexOf("?")>-1) {
p=p.split("?")[0];
}
if(h.toLowerCase().indexOf("google")>-1) {
if(_ur.indexOf("?q=")>-1 || _ur.indexOf("&q=")>-1) {
if (p.toLowerCase().indexOf("cse")>-1) {
return true;
}
}
}
}
function _uBInfo() {
var sr="-",sc="-",ul="-",fl="-",cs="-",je=1;
var n=navigator;
if (self.screen) {
sr=screen.width+"x"+screen.height;
sc=screen.colorDepth+"-bit";
} else if (self.java) {
var j=java.awt.Toolkit.getDefaultToolkit();
var s=j.getScreenSize();
sr=s.width+"x"+s.height;
}
if (n.language) { ul=n.language.toLowerCase(); }
else if (n.browserLanguage) { ul=n.browserLanguage.toLowerCase(); }
je=n.javaEnabled()?1:0;
if (_uflash) fl=_uFlash();
if (_ubd.characterSet) cs=_uES(_ubd.characterSet);
else if (_ubd.charset) cs=_uES(_ubd.charset);
return "&utmcs="+cs+"&utmsr="+sr+"&utmsc="+sc+"&utmul="+ul+"&utmje="+je+"&utmfl="+fl;
}
function __utmSetTrans() {
var e;
if (_ubd.getElementById) e=_ubd.getElementById("utmtrans");
else if (_ubd.utmform && _ubd.utmform.utmtrans) e=_ubd.utmform.utmtrans;
if (!e) return;
var l=e.value.split("UTM:");
var i,i2,c;
if (_userv==0 || _userv==2) i=new Array();
if (_userv==1 || _userv==2) { i2=new Array(); c=_uGCS(); }
for (var ii=0;ii-1) return;
if (h) { url=l+" #"+p;="" (iq="=-1" (ih="=-1)" url;="" __utmlinker(l,h)="" (!_ulink="" !l="" l="="")" _udl.href="__utmLinkerUrl(l,h);" __utmlinkpost(f,h)="" !f="" !f.action)="" f.action="__utmLinkerUrl(f.action," h);="" __utmsetvar(v)="" (!v="" (!_udo="" _udo="=" "")="" _udh="_uDomain();" (_udn="" _udn!="" +_udn+";";="" (!_uvg())="" *="" 2147483647);="" _ubd.cookie="__utmv=" +_udh+"."+_ues(v)+";="" path="+_utcp+" expires="+_uNx()+" ;"+_udo;="" +r;="" i="new" i.src="_ugifpath+"?"+"utmwv="+_uwv+s;" i.onload="function()" i2="new" i2.src="_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS();" i2.onload="function()" _ugcs()="" t,c="" ,dc="_ubd.cookie;" ((t="_uGC(dc,"__utma="+_udh+".",";"))!="-")" c+="_uES("__utma="+t+";+");" (c.charat(c.length-1)="="+")" c;="" _ugc(l,n,s)="" (!l="" !n="" n="=""" !s="" "-";="" i,i2,i3,c="-" i3="n.indexOf("=")+1;" (i=""> -1) {
i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; }
c=l.substring((i+i3),i2);
}
return c;
}
function _uDomain() {
if (!_udn || _udn=="" || _udn=="none") { _udn=""; return 1; }
if (_udn=="auto") {
var d=_ubd.domain;
if (d.substring(0,4)=="www.") {
d=d.substring(4,d.length);
}
_udn=d;
}
_udn = _udn.toLowerCase();
if (_uhash=="off") return 1;
return _uHash(_udn);
}
function _uHash(d) {
if (!d || d=="") return 1;
var h=0,g=0;
for (var i=d.length-1;i>=0;i--) {
var c=parseInt(d.charCodeAt(i));
h=((h << 6) & 0xfffffff) + c + (c << 14);
if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21));
}
return h;
}
function _uFixA(c,s,t) {
if (!c || c=="" || !s || s=="" || !t || t=="") return "-";
var a=_uGC(c,"__utma="+_udh+".",s);
var lt=0,i=0;
if ((i=a.lastIndexOf(".")) > 9) {
_uns=a.substring(i+1,a.length);
_uns=(_uns*1)+1;
a=a.substring(0,i);
if ((i=a.lastIndexOf(".")) > 7) {
lt=a.substring(i+1,a.length);
a=a.substring(0,i);
}
if ((i=a.lastIndexOf(".")) > 5) {
a=a.substring(0,i);
}
a+="."+lt+"."+t+"."+_uns;
}
return a;
}
function _uTrim(s) {
if (!s || s=="") return "";
while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\\r')) s=s.substring(1,s.length);
while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\\r')) s=s.substring(0,s.length-1);
return s;
}
function _uEC(s) {
var n="";
if (!s || s=="") return "";
for (var i=0;i0) r=a.substring(i+1,i2); else return "";
if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return "";
if (f) {
return r;
} else {
var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');
return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m];
}
}
function _uIN(n) {
if (!n) return false;
for (var i=0;i"9") && (c!=".")) return false;
}
return true;
}
function _uES(s,u) {
if (typeof(encodeURIComponent) == 'function') {
if (u) return encodeURI(s);
else return encodeURIComponent(s);
} else {
return escape(s);
}
}
function _uUES(s) {
if (typeof(decodeURIComponent) == 'function') {
return decodeURIComponent(s);
} else {
return unescape(s);
}
}
function _uVG() {
if((_udn.indexOf("www.google.") == 0 || _udn.indexOf(".google.") == 0 || _udn.indexOf("google.") == 0) && _utcp=='/' && _udn.indexOf("google.org")==-1) {
return false;
}
return true;
}
function _uSP() {
var s=100;
if (_usample) s=_usample;
if(s>=100 || s<=0) return true;
return ((__utmVisitorCode(1)%10000)<(s*100));
}
function urchinPathCopy(p){
var d=document,nx,tx,sx,i,c,cs,t,h,o;
cs=new Array("a","b","c","v","x","z");
h=_uDomain(); if (_udn && _udn!="") o=" domain="+_udn+";";
nx=_uNx()+";";
tx=new Date(); tx.setTime(tx.getTime()+(_utimeout*1000));
tx=tx.toGMTString()+";";
sx=new Date(); sx.setTime(sx.getTime()+(_ucto*1000));
sx=sx.toGMTString()+";";
for (i=0;i<6;i++){
t=" expires=";
if (i==1) t+=tx; else if (i==2) t=""; else if (i==5) t+=sx; else t+=nx;
c=_uGC(d.cookie,"__utm"+cs[i]+"="+h,";");
if (c!="-") d.cookie="__utm"+cs[i]+"="+c+"; path="+p+";"+t+o;
}
}
function _uCO() {
if (!_utk || _utk=="" || _utk.length<10) return;
var d='www.google.com';
if (_utk.charAt(0)=='!') d='analytics.corp.google.com';
_ubd.cookie="GASO="+_utk+"; path="+_utcp+";"+_udo;
var sc=document.createElement('script');
sc.type='text/javascript';
sc.id="_gasojs";
sc.src='https://'+d+'/analytics/reporting/overlay_js?gaso='+_utk+'&'+Math.random();
document.getElementsByTagName('head')[0].appendChild(sc);
}
function _uGT() {
var h=location.hash, a;
if (h && h!="" && h.indexOf("#gaso=")==0) {
a=_uGC(h,"gaso=","&");
} else {
a=_uGC(_ubd.cookie,"GASO=",";");
}
return a;
}
var _utk=_uGT();
if (_utk && _utk!="" && _utk.length>10 && _utk.indexOf("=")==-1) {
if (window.addEventListener) {
window.addEventListener('load', _uCO, false);
} else if (window.attachEvent) {
window.attachEvent('onload', _uCO);
}
}
function _uNx() {
return (new Date((new Date()).getTime()+63072000000)).toGMTString();
}
By the way, the current Google Analytics code (as of January 8, 2012) is from the link below, and since it’s compressed, you can read it if you restore it.
・http://google-analytics.com/ga.js
This tool is recommended for restoring compressed JavaScript.
・JsDecoder - javascript decoder - decode obfuscated script
That’s all from the Gemba.