1 if(!dojo._hasResource["dojox.analytics.plugins.mouseOver"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
2 dojo._hasResource["dojox.analytics.plugins.mouseOver"] = true;
3 dojo.provide("dojox.analytics.plugins.mouseOver");
5 dojox.analytics.plugins.mouseOver = new (function(){
6 this.watchMouse = dojo.config["watchMouseOver"] || true;
7 this.mouseSampleDelay = dojo.config["sampleDelay"] || 2500;
8 this.addData = dojo.hitch(dojox.analytics, "addData", "mouseOver");
9 this.targetProps = dojo.config["targetProps"] || ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ];
11 this.toggleWatchMouse=function(){
12 if (this._watchingMouse){
13 dojo.disconnect(this._watchingMouse);
14 delete this._watchingMouse;
17 dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse");
21 dojo.connect(dojo.doc, "onmouseover", this, "toggleWatchMouse");
22 dojo.connect(dojo.doc, "onmouseout", this, "toggleWatchMouse");
25 this.sampleMouse=function(e){
26 if (!this._rateLimited){
27 this.addData("sample",this.trimMouseEvent(e));
28 this._rateLimited=true;
29 setTimeout(dojo.hitch(this, function(){
30 if (this._rateLimited){
31 //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent));
32 this.trimMouseEvent(this._lastMouseEvent);
33 delete this._lastMouseEvent;
34 delete this._rateLimited;
36 }), this.mouseSampleDelay);
38 this._lastMouseEvent = e;
42 this.trimMouseEvent=function(e){
46 //case "currentTarget":
48 //case "originalTarget":
49 //case "explicitOriginalTarget":
50 var props=this.targetProps;
52 //console.log(e, i, e[i]);
53 for(var j=0;j<props.length;j++){
54 if(dojo.isObject(e[i]) && props[j] in e[i]){
56 if (props[j]=="text" || props[j]=="textContent"){
57 if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
58 t[i][props[j]]=e[i][props[j]].substr(0,50);
61 t[i][props[j]]=e[i][props[j]];
75 //console.log("Attempting: " + i);
77 //console.log("val: " + val); console.log(i + "e of i: " + val);
82 //console.log("Skipping: ", i);