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