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.