summaryrefslogtreecommitdiff
path: root/includes/js/dojox/analytics/plugins/mouseClick.js
blob: c5273836836c1056d7c566aba83be82868242d72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
if(!dojo._hasResource["dojox.analytics.plugins.mouseClick"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojox.analytics.plugins.mouseClick"] = true;
dojo.provide("dojox.analytics.plugins.mouseClick");

// window startup data
dojox.analytics.plugins.mouseClick = new (function(){
	this.addData = dojo.hitch(dojox.analytics, "addData", "mouseClick");

	this.onClick=function(e){
		this.addData(this.trimEvent(e));
	}
	dojo.connect(dojo.doc, "onclick", this, "onClick");

	this.trimEvent=function(e){
		var t = {};
		for (var i in e){
			switch(i){
				case "target":
				case "originalTarget":
				case "explicitOriginalTarget":
					var props=["id","className","nodeName", "localName","href", "spellcheck", "lang"];
					t[i]={};
					for(var j=0;j<props.length;j++){
						if(e[i][props[j]]){
							if (props[j]=="text" || props[j]=="textContent"){
                                                                if ((e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
                                                                        t[i][props[j]]=e[i][props[j]].substr(0,50);
                                                                }
                                                        }else{
                                                                t[i][props[j]]=e[i][props[j]];
                                                        }
						}
					}
					break;
				case "clientX":
				case "clientY":
				case "pageX":
				case "pageY":
				case "screenX":
				case "screenY":
					t[i]=e[i];
					break;
			}
		}
		return t;
	}
})();

}