﻿var _cdn = "auto", _ur = "-";
var _cbd = document, _cdl = _cbd.location, _cdlh = "";
var __ajaxurl = "http://uedas.qidian.com/statajax.aspx?opName=";
var __downspeedUrl = "http://uedas.qidian.com/javascript/";
if (_cdl.hash) _cdlh = _cdl.href.substring(_cdl.href.indexOf('#'));
var _clickHeeatUrlList = ["http://www.qidian.com/", "http://www.qidian.com/default.aspx", 
"http://xunhuan.qidian.com/", "http://lingyi.qidian.com/", "http://game.qidian.com/game/default.aspx"];

var rnd = Math.random();
rnd = Math.round(rnd * 100);
var iframename = "frmchatlog" + rnd;

var speedfrmOnload = function() { };
document.write("<span style='display:none'><iframe style='display:none' width='0' height='0' id='__speedfrm' onload='speedfrmOnload();'></iframe>");
document.write("<img id='" + iframename + "' ></img></span>");


function CmfuTracker() {
var dc = _cbd.cookie;
var clientArr;
var clientArr2;

if (_cdl.protocol == "file:") return;
if (_cdl.protocol == "mk:") return;
_cdh = _cDomain();
clientArr = _cBInfo();
clientArr2 = _cUInfo();

if(clientArr2 != null && (clientArr2[2].toLowerCase()=='/forumpublic.aspx'||clientArr2[2].toLowerCase()=='/tuita260x170.html')){// 公众阅读页iframe嵌套页 
return;
}

if (clientArr2 != null && clientArr2[2] == "/ploy/kds.html") {
return;
}

if (_cdl.hostname.indexOf("qidianmm.com") > -1) {
__ajaxurl = "http://uedas.qidianmm.com/statajax.aspx?opName=";
__downspeedUrl = "http://uedas.qidianmm.com/javascript/";
}

if (_cdl.hostname.indexOf("qdmm.com") > -1) {
__ajaxurl = "http://uedas.qdmm.com/statajax.aspx?opName=";
__downspeedUrl = "http://uedas.qdmm.com/javascript/";
}
if (_cdl.hostname.indexOf("qdwenxue.com") > -1) {
__ajaxurl = "http://uedas.qdwenxue.com/statajax.aspx?opName=";
__downspeedUrl = "http://uedas.qdwenxue.com/javascript/";
}

if (__GetCookie("stat_gid") == null || __GetCookie("stat_gid") == "" || __GetCookie("stat_gid") == "0" || isNaN(__GetCookie("stat_gid"))) {
/*log gid,id24,sessid*/

if (clientArr2[4] == clientArr2[5] || _cr.indexOf(clientArr2[1]) == -1)
MyStatAjax.AddGlobalUser(
clientArr[2], clientArr[0], clientArr[1],
clientArr[3], _cr, clientArr2[0], clientArr2[1], clientArr2[2],
clientArr2[3], clientArr2[4], clientArr2[5], GetErrorPageState(),
(__GetCookie("cmfuToken") == null ? "" : __GetCookie("cmfuToken")));

}
else if (__GetCookie("stat_id24") == null || __GetCookie("stat_id24") == "" || __GetCookie("stat_id24") == "0") {

MyStatAjax.AddDailyUser(
__GetCookie("stat_gid"), clientArr[2], clientArr[0], clientArr[1],
clientArr[3], _cr, clientArr2[0], clientArr2[1], clientArr2[2],
clientArr2[3], clientArr2[4], clientArr2[5], GetErrorPageState(),
(__GetCookie("cmfuToken") == null ? "" : __GetCookie("cmfuToken")));

}
else if (__GetCookie("stat_sessid") == null || __GetCookie("stat_sessid") == "" || __GetCookie("stat_sessid") == "0" || isNaN(__GetCookie("stat_sessid"))) {
MyStatAjax.AddSessionUser(__GetCookie("stat_gid"),
_cr, clientArr2[0], clientArr2[1], clientArr2[2],
clientArr2[3], clientArr2[4], clientArr2[5], GetErrorPageState(),
(__GetCookie("cmfuToken") == null ? "" : __GetCookie("cmfuToken")));
}
else {
CmfuPV(__GetCookie("stat_gid"), __GetCookie("stat_sessid"), __GetCookie("cmfuToken"));
}

setTimeout("LogOtherClientInfo()", 1000);
//区域点击
__ClickArea.bindEvent();

for (var k = 0; k < _clickHeeatUrlList.length; k++) {
if (unescape(clientArr2[5]).toLowerCase() == _clickHeeatUrlList[k]) {
var anchors = document.getElementsByTagName("a");
for (i = 0; i < anchors.length; i++) {
addEvtListener(anchors[i], 'mousedown', catchCmfuClickHeat);
}
}
}


return 0;
}

/*log ElapsedTime*/
var curElapsedType;
var curValue;
function LogOtherClientInfo() {
var globalId = __GetCookie("stat_gid");
var hh24id = __GetCookie("stat_id24");

var autucookie = __GetCookie("cmfu_al");
var loginType = __GetCookie("uraction24");
var cmfuToken = __GetCookie("cmfuToken");

var arr = new Array();

if (globalId == null || globalId == "")
return;
if (hh24id == null || hh24id == "")
return;
if (loginType != null && loginType != "")
loginType = "1";

arr = hh24id.split(","); //elapsedTime0;elapsedTime1;elapsedTime10;userAccount

if (arr.length <= 1 && (arr[0] == "0" || arr[0] == ""))
LoadNetSpeed(globalId, 0);
else if (arr.length > 1 && (arr[1] == "0" || arr[1] == "") || arr.length <= 1)
LoadNetSpeed(globalId, 1);
else if (arr.length > 2 && (arr[2] == "0" || arr[2] == "") || arr.length <= 2)
LoadNetSpeed(globalId, 2);
else if ((arr.length > 3 && (arr[3] == "0" || arr[3] == "") || arr.length <= 3) && cmfuToken != null && cmfuToken != "")
MyStatAjax.UpdateDailyLogin(globalId, cmfuToken == null ? "" : cmfuToken, loginType);
}

function LoadNetSpeed(globalId, elapsedType) {
var begin = new Date().getTime();
var rnd = Math.random();
/*
var speedObj = document.getElementById('__speedfrm');
speedObj.src = __downspeedUrl + elapsedType + ".txt?t=" + rnd;
speedfrmOnload = function() { LogNetSpeed(globalId, elapsedType, begin); };*/
LogNetSpeed(globalId, elapsedType, begin);
}

function LogNetSpeed(globalId, elapsedType, begin) {
var speedObj = document.getElementById('__speedfrm');
var readyState = null;

try { readyState = speedObj.readyState; } catch (e) { readyState = null; }

if (readyState == 'complete' || !readyState) {
var end = new Date().getTime();
MyStatAjax.UpdateDailyElapsedTime(globalId, Math.floor(end - begin), elapsedType);
}
else {
setTimeout("LogNetSpeed(" + globalId + "," + elapsedType + "," + begin + ");", 100);
}
}

/*log cur pv info*/
function CmfuPV(globalId, sessionId, cmfuToken) {
if (globalId != null) {
var clientArr2 = _cUInfo();


MyStatAjax.LogCmfuPV(
parseInt(globalId), parseInt(sessionId), _cr,
clientArr2[0], clientArr2[1], clientArr2[2],
clientArr2[3], clientArr2[4], clientArr2[5], GetErrorPageState(),
cmfuToken == null ? "" : cmfuToken);
}
}

function GetErrorPageState() {
var __isErrorPage = 0;
if (typeof isErrorPage != "undefined")
__isErrorPage = isErrorPage;
return __isErrorPage;
}

function _cUInfo() {
var s = "", pgnm = "", pgqs = "";
_cr = _cbd.referrer;
var arr = new Array();

if (_cbd.title && _cbd.title != "") arr[0] = _cES(_cbd.title);
else arr[0] = "";
if (_cdl.hostname && _cdl.hostname != "") arr[1] = _cES(_cdl.hostname);
else arr[1] = "";
if (_cdl.pathname && _cdl.pathname != "") arr[2] = _cES(_cdl.pathname);
else arr[2] = "";
if (_cdl.search && _cdl.search != "") arr[3] = _cES(_cdl.search);
else arr[3] = "";
if (_cdl.href && _cdl.href != "") arr[4] = _cES(_cdl.href);
else arr[4] = "";
try
{ if (top.location.href && top.location.href != "") arr[5] = _cES(top.location.href); else arr[5] = ""; }
catch (e) { arr[5] = ""; }

return (arr);
}

/*get brower info*/
function _cBInfo() {
var sr = "-", sc = "-", ul = "-", fl = "-", cs = "-";
var n = navigator;
var screenWidth, screenHeight, colorDepth;
var arr = new Array();

if (self.screen) {
colorDepth = screen.colorDepth;
screenWidth = screen.width;
screenHeight = screen.height;
} else if (self.java) {
var j = java.awt.Toolkit.getDefaultToolkit();
var s = j.getScreenSize();
screenWidth = s.width;
screenHeight = s.height;
colorDepth = 0;
}

/* get flash version*/
fl = _cFlash();

arr[0] = screenWidth;
arr[1] = screenHeight;
arr[2] = colorDepth;
arr[3] = fl;

return arr;
}

/* get flash version*/
function _cFlash() {
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 {
var fl;
try {
fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
f = fl.GetVariable("$version");
} catch (e) { }
if (f == "-") {
try {
fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
f = "WIN 6,0,21,0";
fl.AllowScriptAccess = "always";
f = fl.GetVariable("$version");
} catch (e) { }
}
if (f == "-") {
try {
fl = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
f = fl.GetVariable("$version");
} catch (e) { }
}
if (f != "-") {
f = f.split(" ")[1].split(",");
f = f[0] + "." + f[1] + " r" + f[2];
}
}
return f;
}

/* get hashcode of current domain*/
function _cDomain() {
if (!_cdn || _cdn == "" || _cdn == "none") { _cdn = ""; return 1; }

/* initialing */
if (_cdn == "auto") {
var d = _cbd.domain;
if (d.substring(0, 4) == "www.") {
d = d.substring(4, d.length);
}
_cdn = d;
}
_cdn = _cdn.toLowerCase();
return _cHash(_cdn);
}

/* compute the hash code*/
function _cHash(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;
}

/* escape function*/
function _cES(s, u) {
/* if (typeof(encodeURIComponent) == 'function') {
if (u) return encodeURI(s);
else return encodeURIComponent(s);
} else {*/
return escape(s);
/* }*/
}

function CmfuStatAjax() {
this.toQueryString = function(json) {
var query = "";
if (json != null) {
for (var param in json) query += param + "=" + escape(json[param]) + "&";
}
return query;
}

this.invoke = function(opName, params) {
var query = "";
query += this.toQueryString(params);
query = query.substring(0, query.length - 1);


var url = __ajaxurl + opName;
//if (__GetCookie("stat_gid")=="32500275"){alert(url+"&"+query);}
document.getElementById(iframename).src = url + "&" + query;
}
}

var MyStatAjax = {
AddGlobalUser: function(
clientColorDepth, clientScreenWidth, clientScreenHeight,
flashVersion, referrer, pageTitle, host, pagePathName, pageQueryString, pageUrl, topPageUrl, isErrorPage, curToken
) {
new CmfuStatAjax().invoke("AddGlobalUser", {
"clientColorDepth": clientColorDepth,
"clientScreenWidth": clientScreenWidth,
"clientScreenHeight": clientScreenHeight,
"flashVersion": flashVersion,
"referrer": referrer,
"pageTitle": pageTitle,
"host": host,
"pagePathName": pagePathName,
"pageQueryString": pageQueryString,
"pageUrl": pageUrl,
"topPageUrl": topPageUrl,
"isErrorPage": isErrorPage,
"curToken": curToken
});
},
AddDailyUser: function(
globalId, clientColorDepth, clientScreenWidth, clientScreenHeight,
flashVersion, referrer, pageTitle, host, pagePathName, pageQueryString, pageUrl, topPageUrl, isErrorPage, curToken
) {
new CmfuStatAjax().invoke("AddDailyUser", {
"globalId": globalId,
"clientColorDepth": clientColorDepth,
"clientScreenWidth": clientScreenWidth,
"clientScreenHeight": clientScreenHeight,
"flashVersion": flashVersion,
"referrer": referrer,
"pageTitle": pageTitle,
"host": host,
"pagePathName": pagePathName,
"pageQueryString": pageQueryString,
"pageUrl": pageUrl,
"topPageUrl": topPageUrl,
"isErrorPage": isErrorPage,
"curToken": curToken
});
},
AddSessionUser: function(globalId, referrer, pageTitle, host, pagePathName, pageQueryString, pageUrl, topPageUrl, isErrorPage, curToken) {
new CmfuStatAjax().invoke("AddSessionUser", {
"globalId": globalId,
"referrer": referrer,
"pageTitle": pageTitle,
"host": host,
"pagePathName": pagePathName,
"pageQueryString": pageQueryString,
"pageUrl": pageUrl,
"topPageUrl": topPageUrl,
"isErrorPage": isErrorPage,
"curToken": curToken
});
},
LogCmfuPV: function(globalId, sessionId, referrer, pageTitle, host, pagePathName, pageQueryString, pageUrl, topPageUrl, isErrorPage, curToken) {
new CmfuStatAjax().invoke("LogCmfuPV", {
"globalId": globalId,
"sessionId": sessionId,
"referrer": referrer,
"pageTitle": pageTitle,
"host": host,
"pagePathName": pagePathName,
"pageQueryString": pageQueryString,
"pageUrl": pageUrl,
"topPageUrl": topPageUrl,
"isErrorPage": isErrorPage,
"curToken": curToken
});
},
UpdateDailyElapsedTime: function(globalId, totalTime, elapsedType) {
curElapsedType = elapsedType;
curValue = totalTime;
new CmfuStatAjax().invoke("UpdateDailyElapsedTime", {
"globalId": globalId,
"totalTime": totalTime,
"elapsedType": elapsedType
});
},
UpdateDailyLogin: function(globalId, curToken, loginType) {
curElapsedType = 3;
new CmfuStatAjax().invoke("UpdateDailyLogin", {
"globalId": globalId,
"curToken": curToken,
"loginType": loginType
});
},
LogCmfuClickHeat: function(globalId, sessionId, host, pageUrl, clientClickX, clientClickY, clientDocumentWidth, clientDocumentHeight, button, browsers) {
new CmfuStatAjax().invoke("LogCmfuClickHeat", {
"globalId": globalId,
"sessionId": sessionId,
"host": host,
"pageUrl": pageUrl,
"clientClickX": clientClickX,
"clientClickY": clientClickY,
"clientDocumentWidth": clientDocumentWidth,
"clientDocumentHeight": clientDocumentHeight,
"button": button,
"browsers": browsers
});
},//aName,_host,_pageUrl,_path,_param,_linkUrl,_linkText,_agent,_ref,_uid,_ssId,_token
LogCmfuClickArea: function(areaName,host,pageUrl,path,param,linkurl,linkText,agent,referrer,uid,sessionId,token) {
new CmfuStatAjax().invoke("LogCmfuClickArea", {
"areaName": areaName,
"host":host,
"pageUrl": pageUrl,
"pagePathname": path,
"pageQueryString": param,
"linkurl": linkurl,
"linkText":linkText,
"agent": agent,
"referrer": referrer,
"globalId": uid,
"sessionId": sessionId,
"curToken": token
});
}

}

String.prototype.PadRight = function(totalWidth, paddingChar) {
if (paddingChar != null) {
return this.PadHelper(totalWidth, paddingChar, true);
}
else {
return this.PadHelper(totalWidth, ' ', true);
}
}

String.prototype.PadHelper = function(totalWidth, paddingChar, isRightPadded) {
if (this.length < totalWidth) {
var paddingString = new String();
for (i = 1; i <= (totalWidth - this.length); i++) {
paddingString += paddingChar;
}
if (isRightPadded) {
return (this + paddingString);
}
else {
return (paddingString + this);
}
}
else {
return this;
}
}

function __SetCookie(name, value) {
var argv = __SetCookie.arguments;
var argc = __SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2].toGMTString() : (new Date()).AddDays(30).toGMTString();
var path = (argc > 3) ? argv[3] : "/";
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;

var content = name + "=" + escape(value) + ";";
if (expires != null) content += " expires=" + expires + ";";
if (path != null) content += " path=" + path + ";";
if (domain != null) content += " domain=" + domain + ";";

document.cookie = content;
}

function __GetCookie(cookieName) {
var cookieString = document.cookie;
var start = cookieString.indexOf(cookieName + '=');

if (start == -1) return null;

start += cookieName.length + 1;
var end = cookieString.indexOf(';', start);
if (end == -1) return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start, end));
}

Date.prototype.AddDays = function(interval) {
var dateObj = this;
var millisecond = 1;
var second = millisecond * 1000;
var minute = second * 60;
var hour = minute * 60;
var day = hour * 24;
var year = day * 365;

var newDate;
var dVal = new Date(dateObj);
var dVal = dVal.valueOf();

newDate = new Date(dVal + day * interval);
newDate = new Date(newDate);
return newDate;
}

/** Event listener */
function addEvtListener(obj, evtName, f) {
/** FF */
if (document.addEventListener) {
if (obj) {
obj.addEventListener(evtName, f, false);
}
else {
addEventListener(evtName, f, false);
}
}
/** IE */
else if (attachEvent) {
if (obj) {
obj.attachEvent('on' + evtName, f);
}
else {
attachEvent('on' + evtName, f);
}
}
}
function catchCmfuClickHeat(e) {
try {
var c,
element,
x, y,
w, h,
scrollx, scrolly,
params;
if (!e) {
e = window.event;
}
var _clientArr2 = _cUInfo();
clickHeatDocument = document.documentElement && document.documentElement.clientHeight !== 0 ? document.documentElement : document.body;
c = e.which || e.button;
element = e.srcElement || null;
x = e.clientX;
y = e.clientY;
w = clickHeatDocument.clientWidth || window.innerWidth;
h = clickHeatDocument.clientHeight || window.innerHeight;
scrollx = window.pageXOffset || clickHeatDocument.scrollLeft;
scrolly = window.pageYOffset || clickHeatDocument.scrollTop;
b = navigator.userAgent ? navigator.userAgent.toLowerCase().replace(/-/g, '') : '';
browsers = ['chrome', 'firefox', 'safari', 'msie', 'opera'];
clickHeatBrowser = 'unknown';
for (i = 0; i < browsers.length; i += 1) {
if (b.indexOf(browsers[i]) !== -1) {
clickHeatBrowser = browsers[i];
break;
}
}
MyStatAjax.LogCmfuClickHeat(__GetCookie("stat_gid"), __GetCookie("stat_sessid"), _clientArr2[1], _clientArr2[5], (x + scrollx), (y + scrolly), w, h, c, clickHeatBrowser);
}
catch (err) {
return true;
}
return true;
}

function catchCmfuClickArea(e) {
//(areaId,areaName,pageUrl,path,param,linkurl,agent,referrer,uid,sessionId,token) 
if (!e) {
e = window.event;
}
 var _em = e.srcElement || e.target;
     
    var _aName,_host,_pageUrl,_path,_para,_param,_linkUrl,_linkText,_agent,_ref,_uid,_ssId,_token;
  
    while(_em.tagName.toLowerCase()!="a"){
        _em = _em.parentNode;
    }
    
     var _cImgs = _em.getElementsByTagName("img");
    if(_cImgs.length>0)
        _linkText = _cImgs[0].alt;
    else
        _linkText = _em.innerHTML;
  


    var _clientArr2 = _cUInfo();
    _aName = _em.$_$ename?_em.$_$ename:"";

    _host = _clientArr2[1];
    _pageUrl = _clientArr2[4];
    _path = _clientArr2[2]
    _param = _clientArr2[3];
    _linkUrl = _em.href;

_ref = _cbd.referrer;
_uid = __GetCookie("stat_gid")==null?"":__GetCookie("stat_gid");
_token = __GetCookie("cmfuToken")==null?"":__GetCookie("cmfuToken"); 
_ssId = __GetCookie("stat_sessid")==null?"":__GetCookie("stat_sessid");

MyStatAjax.LogCmfuClickArea(_aName,_host,_pageUrl,_path,_param,_linkUrl,_linkText,_agent,_ref,_uid,_ssId,_token);
}

var __ClickArea = {
clickAreaList:[
{Page:"^http://www\.qidian\.com/bookreader/lastpage.aspx",List:[{ID:"divLastPageRecommendBook",EName:"LastPageRecommendBook"}]},
{Page:"^http://www\.qidian\.com/book/\\d+\\.aspx$",List:[{ID:"tonghaozuopin",EName:"ShowBookRelatedBook"}]},
{Page:"^http://www\.qidian\.com/bookreader/\\d+,\\d+\\.aspx$",List:[{ID:"ulCollectBookUser",EName:"ReadChapterCollectBookUser"}]},
{Page:"^http://www\.qidian\.com/bookreader/\\d+\\.aspx$",List:[{ID:"divBookDirectoryTongLeiRecomend",EName:"ChapterListTongLeiRecomend"}]},
{Page:"^http://me\.qidian\.com/bookshelf/bookcase\.aspx",List:[{ID:"shell",EName:"BookCaseFinishBookNotice"}]},
{Page:"^http://me\.qidian\.com/bookshelf/bookrecommend\.aspx",List:[{ID:"divBookCaseTable",EName:"BookCaseRecommend"}]}   
],
bindEvent:function(e){
var _list= __ClickArea.clickAreaList;
for (var m = 0; m < _list.length; m++) {
var pattern = new RegExp(_list[m].Page); 
if (pattern.test(unescape(_cUInfo()[5]).toLowerCase())) {
for(var n = 0;n < _list[m].List.length; n++){
var objArea =_cbd.getElementById(_list[m].List[n].ID);
if(!objArea){ setTimeout("__ClickArea.bindEvent()",500); return;}
var areaAnchors = objArea.getElementsByTagName("a");
for (i = 0; i < areaAnchors.length; i++) {
addEvtListener(areaAnchors[i], 'mousedown', __ClickArea.clickEvent);
areaAnchors[i].$_$ename = _list[m].List[n].EName;

}
}
}
}
},
clickEvent:function(e){
if (!e) { e = window.event;};
var _em = e.srcElement || e.target;
var _aName,_host,_pageUrl,_path,_para,_param,_linkUrl,_linkText,_agent = null,_ref,_uid,_ssId,_token;
while(_em.tagName.toLowerCase()!="a"){ _em = _em.parentNode; };
var _cImgs = _em.getElementsByTagName("img");
if(_cImgs.length>0)
_linkText = _cImgs[0].alt;
else
_linkText = _em.innerText?_em.innerText:_em.textContent;
var _cinfo = _cUInfo();
_aName = _em.$_$ename?_em.$_$ename:"";
_host = _cinfo[1];
_pageUrl = _cinfo[4];
_path = _cinfo[2]
_param = _cinfo[3];
_linkUrl = _em.href;
_ref = _cbd.referrer;
_uid = __GetCookie("stat_gid") == null?"":__GetCookie("stat_gid");
_token = __GetCookie("cmfuToken") == null?"":__GetCookie("cmfuToken"); 
_ssId = __GetCookie("stat_sessid") == null?"":__GetCookie("stat_sessid");

MyStatAjax.LogCmfuClickArea(_aName,_host,_pageUrl,_path,_param,_linkUrl,_linkText,_agent,_ref,_uid,_ssId,_token);
}
}


