PageSourceSearch

https://www.graenichen.ch/weblication/grid5/gui/scripts/wClickLogger.js

js graenichen.ch collected 2026-10-02 20:13:40 UTC 5,813 bytes, 163 lines download raw bytes

1////////////////////////////////////////////////////////////////
2
3
4
5
6
7
8
9(function (){
10
11  var wClickLogger = function(){};
12  
13  wClickLogger.blockLeftRel      = 'blockMain';
14  wClickLogger.project           = '';  
15  wClickLogger.timeLoad          = new Date();
16  wClickLogger.urlLogger         = location.href.replace(/^https?\:\/\/[^\/]+/ ,'');
17  wClickLogger.viewportMinWidth  = 0;
18
19  wClickLogger.logClick = function(event){
20    if(typeof(wClickLogger.viewportMinWidth) != 'undefined' && (window.innerWidth ? window.innerWidth : (document.documentElement ? document.documentElement.offsetWidth : document.body.clientWidth)) < wClickLogger.viewportMinWidth){
21      return;
22    }
23
24    if(wClickLogger.project == ''){
25      return;
26    }
27
28    var diffLeft     = document.getElementById(wClickLogger.blockLeftRel) ? document.getElementById(wClickLogger.blockLeftRel).offsetLeft : 0;
29
30    var positionX = -1;
31    var positionY = -1;
32
33    if(event.pageX){
34      positionX = event.pageX;
35      positionY = event.pageY;
36    }
37    else if(event.clientX) {
38      positionX = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
39      positionY = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
40    }
41
42    positionX = positionX - diffLeft;    
43
44    if(positionX > -1){
45
46      var isLink = 1;
47
48      var timeClick  = new Date();
49
50      var timeRet    = parseInt((timeClick.getTime() - wClickLogger.timeLoad.getTime()) / 1000);
51
52      var eventTarget          = null;
53      var eventTargetId        = null;
54      var eventTargetCode      = '';
55      var eventElementPos      = 0;
56      var eventPreviousSibling = null;
57      var eventLayerX          = 0;            
58      var eventLayerY          = 0;
59
60      if(event.srcElement){
61        eventTarget = event.srcElement;
62      }
63      else if(event.target){
64        eventTarget = event.target;
65      }
66      else if(eventObject.relatedTarget){
67        eventTarget = event.relatedTarget;
68      }  
69
70      try{
71        if(eventTarget){ 
72          
73          var eventTargetParentElement = eventTarget;      
74          var timeout = 16;
75          while(!eventTargetId && timeout > 0){
76            if(eventTargetParentElement.getAttribute('id') && eventTargetParentElement.getAttribute('id') != ''){
77              eventTargetId = eventTargetParentElement.getAttribute('id');
78            }
79            else{
80              eventPreviousSibling = eventTargetParentElement;
81              eventElementPos = 0;          
82              do{
83                eventPreviousSibling = eventPreviousSibling.previousSibling;
84                if(eventPreviousSibling){
85                  eventElementPos++;
86                }
87              }
88              while(eventPreviousSibling);
89              eventTargetParentElement = eventTargetParentElement.parentNode;
90              eventTargetCode += (eventTargetCode != '' ? ',' : '') + eventElementPos;
91            }
92            timeout--;
93          }  
94                    
95          if(event.offsetX){
96            eventLayerX = event.offsetX;
97            eventLayerY = event.offsetY
98          }
99          else{
100            eventLayerX = event.offsetX ? parseInt(event.offsetX) : parseInt(event.pageX - eventTarget.offsetLeft);
101            eventLayerY = event.offsetY ? parseInt(event.offsetY) : parseInt(event.pageY - eventTarget.offsetTop);      
102       
103            eventLayerY = event.pageY - eventTarget.offsetTop - wClickLogger.getOffsetAbsTop(eventTarget);     
104            eventLayerX = event.pageX - eventTarget.offsetLeft - wClickLogger.getOffsetAbsLeft(eventTarget);            
105          }                  
106        }
107      }
108      catch(e){}
109
110      var logURL = '/weblication/grid5/scripts/wClickAnalyzer.php?project=' + wClickLogger.project + '&url=' + encodeURIComponent(wClickLogger.urlLogger) + '&l=' + isLink +'&x=' + positionX + '&y=' + positionY + '&t=' + timeRet + (eventTargetId ? '&ti=' + eventTargetId + '&tc=' + eventTargetCode + '&tx=' + eventLayerX + '&ty=' + eventLayerY : '') +  '&w=' +(window.innerWidth ? window.innerWidth : document.body.clientWidth);
111
112      var requestObject;
113
114      if(window.XMLHttpRequest){
115        requestObject = new XMLHttpRequest();
116      }
117      else if(window.ActiveXObject){
118        requestObject = new ActiveXObject("Microsoft.XMLHTTP");
119      }  
120
121      requestObject.open("GET", logURL, true);
122      requestObject.send(null);  
123    }
124  };
125  
126  wClickLogger.getOffsetAbsTop = function(element){
127    if(typeof element !== 'object'){
128      element = document.getElementById(element);
129    }
130
131    var offsetAbs = 0;
132    var currentElement = element.offsetParent;
133    while(currentElement){
134      offsetAbs     += currentElement.offsetTop + (currentElement.style.borderTopWidth != '' ? + parseInt(currentElement.style.borderTopWidth) : 0);
135      currentElement = currentElement.offsetParent;
136    }
137    return offsetAbs;
138  }; 
139  
140  wClickLogger.getOffsetAbsLeft = function(element){
141
142    if(typeof element !== 'object'){
143      element = document.getElementById(element);
144    }
145
146    var offsetAbs = 0;
147    var currentElement = element.offsetParent;
148    while(currentElement){
149      offsetAbs     += currentElement.offsetLeft + (currentElement.style.borderLeftWidth != '' ? + parseInt(currentElement.style.borderLeftWidth) : 0);
150      currentElement = currentElement.offsetParent;
151    }
152    return offsetAbs;
153  };    
154  
155  window.wClickLogger = wClickLogger; 
156
157  if(document.addEventListener){
158    document.addEventListener("mousedown", wClickLogger.logClick, false);
159  }
160  else if(document.attachEvent){
161    document.attachEvent("onmousedown", wClickLogger.logClick);
162  }  
163})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.