天天看點

有關cookie中遇到的 utma utmz 的解釋

由于第一次研究cookie,在分析校内的cookie的時候,遇到了一些__utma utmz的Name,參數的内容完全分析不懂,經多方求教,終于知道了原來那些代碼竟然是Google的免費網站統計系統産生的資訊(垃圾代碼害得我浪費了整整一天),Down下來了它的生成檔案:Urchin.js 幾千行代碼看的我腦袋發木,最後百度搜尋尋求不到結果,求助于Google,才得到了如下的資訊:

This article/section is a stub.

It is here because it was planned, created to drop some preliminary notes. Statements may be wrong,and the style and structure may suck. Feel free to add further notes orsuggestions, rewrite sections or the whole into somethingunderstandable.

The cookies named:

  • __utmv is used for user-custom variables in Analytics
__utma
__utmz
      

...and others are part of Google Analytics, specifically the Urchin tracking module. These cookies track usage on sites that use Google Analytics.

Some details:

  • __utmz tracks where a visitor came from (search engine, search keyword, link)
  • __utma tracks each user's amount of visits, first, last visit.
  • __utmb and __utmc are used totrack when a visit starts and ends to some decent time resolution (cexpires quickly). If you look at cookie state changes (e.g. using firecookie), you will see these change a lot .

如上,英文的内容實在讓人看得頭痛,下面簡要翻譯下各個參數的内容:

__utmz:跟蹤通路者是從哪裡來的(搜尋引擎,搜尋關鍵字,連結位址);

__utma:跟蹤每個使用者的大量通路,第一次,最後一次;

__utmb和__utmc是跟蹤每個使用者的通路時間,從開始到結束。

好了,現在了解了這些無關緊要的資料了,算法還未分析完畢,先把代碼貼上,希望牛人如果看到的話給一下具體算法,到底如何計算出這幾個參數的~

//-- Google Analytics Urchin Module

//-- Copyright 2007 Google, All Rights Reserved.

//-- Urchin On Demand Settings ONLY

var _uacct=""; // set up the Urchin Account

var _userv=0; // service mode (0=local,1=remote,2=both)

//-- UTM User Settings

var _ufsc=1; // set client info flag (1=on|0=off)

var _udn="xiaonei.com"; // (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="http://track.xiaonei.com/__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]="q";

_uOsr[24]="mama"; _uOkw[24]="query";

_uOsr[25]="seznam"; _uOkw[25]="q";

_uOsr[26]="search"; _uOkw[26]="q";

_uOsr[27]="szukaj"; _uOkw[27]="szukaj";

_uOsr[28]="szukaj"; _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";

//-- 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";

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;

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) {

_ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo;

} else {

if (a>=0) a=_uFixA(_ubd.cookie,";",_ust);

else a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".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;

}

_uInfo(page);

_ufns=0;

_ufno=0;

if (!page || page=="") _uff=1;

}

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);

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.οnlοad=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.οnlοad=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) 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) 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 _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<l.length;ii++) {

l[ii]=_uTrim(l[ii]);

if (l[ii].charAt(0)!='T' && l[ii].charAt(0)!='I') continue;

var r=Math.round(Math.random()*2147483647);

if (!_utsp || _utsp=="") _utsp="|";

var f=l[ii].split(_utsp),s="";

if (f[0].charAt(0)=='T') {

s="&utmt=tran"+"&utmn="+r;

f[1]=_uTrim(f[1]); if(f[1]&&f[1]!="") s+="&utmtid="+_uES(f[1]);

f[2]=_uTrim(f[2]); if(f[2]&&f[2]!="") s+="&utmtst="+_uES(f[2]);

f[3]=_uTrim(f[3]); if(f[3]&&f[3]!="") s+="&utmtto="+_uES(f[3]);

f[4]=_uTrim(f[4]); if(f[4]&&f[4]!="") s+="&utmttx="+_uES(f[4]);

f[5]=_uTrim(f[5]); if(f[5]&&f[5]!="") s+="&utmtsp="+_uES(f[5]);

f[6]=_uTrim(f[6]); if(f[6]&&f[6]!="") s+="&utmtci="+_uES(f[6]);

f[7]=_uTrim(f[7]); if(f[7]&&f[7]!="") s+="&utmtrg="+_uES(f[7]);

f[8]=_uTrim(f[8]); if(f[8]&&f[8]!="") s+="&utmtco="+_uES(f[8]);

} else {

s="&utmt=item"+"&utmn="+r;

f[1]=_uTrim(f[1]); if(f[1]&&f[1]!="") s+="&utmtid="+_uES(f[1]);

f[2]=_uTrim(f[2]); if(f[2]&&f[2]!="") s+="&utmipc="+_uES(f[2]);

f[3]=_uTrim(f[3]); if(f[3]&&f[3]!="") s+="&utmipn="+_uES(f[3]);

f[4]=_uTrim(f[4]); if(f[4]&&f[4]!="") s+="&utmiva="+_uES(f[4]);

f[5]=_uTrim(f[5]); if(f[5]&&f[5]!="") s+="&utmipr="+_uES(f[5]);

f[6]=_uTrim(f[6]); if(f[6]&&f[6]!="") s+="&utmiqt="+_uES(f[6]);

}

if ((_userv==0 || _userv==2) && _uSP()) {

i[ii]=new Image(1,1);

i[ii].src=_ugifpath+"?"+"utmwv="+_uwv+s;

i[ii].οnlοad=function() { _uVoid(); }

}

if ((_userv==1 || _userv==2) && _uSP()) {

i2[ii]=new Image(1,1);

i2[ii].src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+c;

i2[ii].οnlοad=function() { _uVoid(); }

}

}

return;

}

function _uFlash() {

var f="-",n=navigator;

if (n.plugins && n.plugins.length) {

for (var ii=0;ii<n.plugins.length;ii++) {

if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {

f=n.plugins[ii].description.split('Shockwave Flash ')[1];

break;

}

}

} else if (window.ActiveXObject) {

for (var ii=10;ii>=2;ii--) {

try {

var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");

if (fl) { f=ii + '.0'; break; }

}

catch(e) {}

}

}

return f;

}

function __utmLinker(l,h) {

if (!_ulink) return;

var p,k,a="-",b="-",c="-",x="-",z="-",v="-";

var dc=_ubd.cookie;

if (!l || l=="") return;

var iq = l.indexOf("?");

var ih = l.indexOf("#");

if (dc) {

a=_uES(_uGC(dc,"__utma="+_udh,";"));

b=_uES(_uGC(dc,"__utmb="+_udh,";"));

c=_uES(_uGC(dc,"__utmc="+_udh,";"));

x=_uES(_uGC(dc,"__utmx="+_udh,";"));

z=_uES(_uGC(dc,"__utmz="+_udh,";"));

v=_uES(_uGC(dc,"__utmv="+_udh,";"));

k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1);

p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k;

}

if (p) {

if (h && ih>-1) return;

if (h) { _udl.href=l+"#"+p; }

else {

if (iq==-1 && ih==-1) _udl.href=l+"?"+p;

else if (ih==-1) _udl.href=l+"&"+p;

else if (iq==-1) _udl.href=l.substring(0,ih-1)+"?"+p+l.substring(ih);

else _udl.href=l.substring(0,ih-1)+"&"+p+l.substring(ih);

}

} else { _udl.href=l; }

}

function __utmLinkPost(f,h) {

if (!_ulink) return;

var p,k,a="-",b="-",c="-",x="-",z="-",v="-";

var dc=_ubd.cookie;

if (!f || !f.action) return;

var iq = f.action.indexOf("?");

var ih = f.action.indexOf("#");

if (dc) {

a=_uES(_uGC(dc,"__utma="+_udh,";"));

b=_uES(_uGC(dc,"__utmb="+_udh,";"));

c=_uES(_uGC(dc,"__utmc="+_udh,";"));

x=_uES(_uGC(dc,"__utmx="+_udh,";"));

z=_uES(_uGC(dc,"__utmz="+_udh,";"));

v=_uES(_uGC(dc,"__utmv="+_udh,";"));

k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1);

p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k;

}

if (p) {

if (h && ih>-1) return;

if (h) { f.action+="#"+p; }

else {

if (iq==-1 && ih==-1) f.action+="?"+p;

else if (ih==-1) f.action+="&"+p;

else if (iq==-1) f.action=f.action.substring(0,ih-1)+"?"+p+f.action.substring(ih);

else f.action=f.action.substring(0,ih-1)+"&"+p+f.action.substring(ih);

}

}

return;

}

function __utmSetVar(v) {

if (!v || v=="") return;

if (!_udo || _udo == "") {

_udh=_uDomain();

if (_udn && _udn!="") { _udo=" domain="+_udn+";"; }

}

if (!_uVG()) return;

var r=Math.round(Math.random() * 2147483647);

_ubd.cookie="__utmv="+_udh+"."+_uES(v)+"; path="+_utcp+"; expires="+_uNx()+";"+_udo;

var s="&utmt=var&utmn="+r;

if ((_userv==0 || _userv==2) && _uSP()) {

var i=new Image(1,1);

i.src=_ugifpath+"?"+"utmwv="+_uwv+s;

i.οnlοad=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.οnlοad=function() { _uVoid(); }

}

}

function _uGCS() {

var t,c="",dc=_ubd.cookie;

if ((t=_uGC(dc,"__utma="+_udh,";"))!="-") c+=_uES("__utma="+t+";+");

if ((t=_uGC(dc,"__utmb="+_udh,";"))!="-") c+=_uES("__utmb="+t+";+");

if ((t=_uGC(dc,"__utmc="+_udh,";"))!="-") c+=_uES("__utmc="+t+";+");

if ((t=_uGC(dc,"__utmx="+_udh,";"))!="-") c+=_uES("__utmx="+t+";+");

if ((t=_uGC(dc,"__utmz="+_udh,";"))!="-") c+=_uES("__utmz="+t+";+");

if ((t=_uGC(dc,"__utmv="+_udh,";"))!="-") c+=_uES("__utmv="+t+";");

if (c.charAt(c.length-1)=="+") c=c.substring(0,c.length-1);

return c;

}

function _uGC(l,n,s) {

if (!l || l=="" || !n || n=="" || !s || s=="") return "-";

var i,i2,i3,c="-";

i=l.indexOf(n);

i3=n.indexOf("=")+1;

if (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;i<s.length;i++) {if (s.charAt(i)==" ") n+="+"; else n+=s.charAt(i);}

return n;

}

function __utmVisitorCode(f) {

var r=0,t=0,i=0,i2=0,m=31;

var a=_uGC(_ubd.cookie,"__utma="+_udh,";");

if ((i=a.indexOf(".",0))<0) return;

if ((i2=a.indexOf(".",i+1))>0) 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<n.length;i++) {

var c=n.charAt(i);

if ((c<"0" || c>"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) {

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();

繼續閱讀