PageSourceSearch

https://admin.tracker.com/Scripts/Tracker.Trk.Commons.js

js tracker.com collected 2026-10-01 15:26:35 UTC 9,804 bytes, 315 lines download raw bytes

1// Global functions used by tracker.com
2
3function isdefined(variable) {
4    return (typeof (window[variable]) == "undefined") ? false : true;
5}
6
7// prototypes
8String.prototype.trim = function () {
9    return this.replace(/^\s*/, "").replace(/\s*$/, "");
10}
11
12function MapLoadedCallback()
13{
14    // do nothing..
15}
16
17function disableEnterKey(e) {
18    var key;
19    if (window.event)
20        key = window.event.keyCode; //IE
21    else
22        key = e.which; //firefox      
23
24    return (key != 13);
25}
26
27//Google maps
28function circlePath(center, radius, points) {
29    var a = [], p = 360 / points, d = 0;
30    for (var i = 0; i < points; ++i, d += p) {
31        a.push(google.maps.geometry.spherical.computeOffset(center, radius, d));
32    }
33    return a;
34}
35
36
37function mapGotoChanged(s, e, jsFunction) {
38    if (isdefined("GMap")) {
39        var address = s.GetText();
40        mapGotoAddressAndCenter(address, jsFunction);
41    }
42}
43
44function mapGotoAddressAndCenter(address, jsFunction) {
45    if (isdefined("GMap")) {
46        if (address) {
47            address = address.trim();
48            if (address.length > 0) {
49                GMap.geocodeAddressAndCenter(address, jsFunction);
50            }
51        }
52    }
53}
54
55function mapGotoKeyDown(s, e) {
56    if (13 == e.htmlEvent.keyCode) {
57        e.htmlEvent.returnValue = false;
58        mapGotoChanged(s, e);
59        return false;
60    }
61    return true;
62};
63
64
65
66/**
67 * The default function for determining the label text and style
68 * for a cluster icon.
69 *
70 * @param {Array.<google.maps.Marker>} markers The array of markers represented by the cluster.
71 * @param {number} numStyles The number of marker styles available.
72 * @return {ClusterIconInfo} The information resource for the cluster.
73 * @constant
74 * @ignore
75 */
76var clusterStatusCalculator = function TrackerMarkerClustererStatusCalculator(markers, numStyles) {
77    var index = 0;
78    var title = "";
79    var count = markers.length.toString();
80
81    var highestStatus = 1;
82    for (var x = 0 ; x < markers.length; x++) {
83        var marker = markers[x];
84        var trackerMarker = marker.get('trk');
85        if (trackerMarker) {
86            if (trackerMarker.CK) {
87                if (trackerMarker.CK == "VSS") {
88                    if (highestStatus < 2) {
89                        highestStatus = 2;
90                    }
91                };
92                if (trackerMarker.CK == "VSO") {
93                    if (highestStatus < 3) {
94                        highestStatus = 3;
95                    }
96                };
97                if (trackerMarker.CK == "VSW") {
98                    if (highestStatus < 4) {
99                        highestStatus = 4;
100                    }
101                };
102
103                if (trackerMarker.CK == "VSE") {
104                    if (highestStatus < 5) {
105                        highestStatus = 5;
106                    }
107                };
108            }
109        }
110    }
111
112    index = Math.min(highestStatus, numStyles);
113    return {
114        text: count,
115        index: index,
116        title: title
117    };
118};
119
120
121
122function createAndOpenActiveClusterInfoWindow(arg, activeMarker, useInfoBox) {
123
124    var content = document.createElement('div');
125    var toAdd = content;
126
127    if (useInfoBox) {
128        var arrow = document.createElement('div');
129        arrow.setAttribute("class", "arrow");
130
131        var arrowA = document.createElement('div');
132        arrowA.setAttribute("class", "arrowa");
133        arrow.appendChild(arrowA);
134
135        var arrowB = document.createElement('div');
136        arrowB.setAttribute("class", "arrowb");
137        arrow.appendChild(arrowB);
138
139        content.appendChild(arrow);
140        content.setAttribute("class", "clusterDetails infoBoxContent");
141
142    } else {
143        content.setAttribute("class", "clusterDetails");
144    }
145
146
147
148    // create the head
149    var contentHead = document.createElement('div');
150    contentHead.setAttribute("class", "header");
151    contentHead.appendChild(document.createTextNode(arg.getSize()));
152    content.appendChild(contentHead);
153
154    // create the contentDetail
155    var contentDetail = document.createElement('div');
156    contentDetail.setAttribute("class", "content");
157    content.appendChild(contentDetail);
158    var markers = arg.getMarkers();
159    if (markers) {
160        markers.sort(function (a, b) {
161            var nameA = a.getTitle();
162            if (nameA) {
163                nameA = nameA.toLowerCase();
164            }
165            var nameB = b.getTitle();
166            if (nameB) {
167                nameB = nameB.toLowerCase();
168            }
169
170            if (nameA < nameB) //sort string ascending
171                return -1;
172            if (nameA > nameB)
173                return 1;
174            return 0;
175        });
176
177        for (var i = 0; i < markers.length; i++) {
178            var marker = markers[i];
179
180            var title = marker.getTitle();
181            var status = "None";
182            var active = "";
183
184            var isActive = false;
185            if (marker == activeMarker) {
186                active = " markeractive";
187                isActive = true;
188            }
189
190            if (i < 1000 || isActive) {
191
192                var trackerMarker = marker.get('trk');
193                var key = null;
194                if (trackerMarker) {
195                    if (trackerMarker.CK) {
196                        status = trackerMarker.CK;
197                    }
198                    if (trackerMarker.K) {
199                        key = trackerMarker.K;
200                    }
201                }
202                var statusClass = 'markerstatus' + status;
203                var markerDetail = document.createElement('div');
204                markerDetail.setAttribute("class", "marker " + statusClass + active);
205                if (key) {
206                    markerDetail.setAttribute("onclick", "showMarkerInCluster(this,'" + key + "')");
207                }
208
209                var markerAnchor = document.createElement('a');
210                markerDetail.appendChild(markerAnchor);
211                markerAnchor.appendChild(document.createTextNode(title));
212
213                contentDetail.appendChild(markerDetail);
214            }
215        }
216    }
217
218    // create the head
219    var contentFoot = document.createElement('div');
220    contentFoot.setAttribute("class", "f");
221    content.appendChild(contentFoot);
222
223    var infowindow;
224    if (useInfoBox) {
225        var myOptions = {
226            content: toAdd
227                    , boxClass: "clusterWindow"
228                    , disableAutoPan: true
229                    , maxWidth: 0
230                    , pixelOffset: new google.maps.Size(-140, 20)
231                    , zIndex: null
232                    , boxStyle: {
233                        opacity: 0.95
234                        , width: "330px"
235                    }
236                    , closeBoxMargin: "8px 8px 8px 8px"
237                    , closeBoxURL: "/img/gm/ib/close.gif"
238                    , infoBoxClearance: new google.maps.Size(1, 1)
239                    , isHidden: false
240                    , pane: "floatPane"
241                    , enableEventPropagation: false
242        };
243        infowindow = new InfoBox(myOptions);
244        infowindow.setPosition(arg.getCenter());
245        infowindow.open(arg.getMap());
246
247    } else {
248        infowindow = new google.maps.InfoWindow({
249            content: toAdd,
250            position: arg.getCenter(),
251            disableAutoPan: true,
252            map: arg.getMap()
253        });
254
255        infowindow.open(arg.getMap());
256    }
257
258    return infowindow;
259}
260
261function showMarkerInCluster(link, argKey) {
262    if (argKey) {
263
264        if (!isdefined("GMap")) {
265            return;
266        }
267        
268        var markerModel = GMap.findMarkerByKey(argKey);
269        if (markerModel) {
270            if (!markerModel.getVisible()) {
271                return;
272            }
273
274            var clusterManager = GMap.get_markerClusterer();
275            if (!markerModel.getMap()) {
276
277                var notFound = true;
278                var activeGoogleMarker = null;
279                if (clusterManager) {
280                    var clusters = clusterManager.getClusters();
281
282                    for (var i = 0, l = clusters.length; i < l && notFound; i++) {
283                        for (var j = 0, le = clusters[i].markers_.length; j < le && notFound; j++) {
284                            var markerInCluster = clusters[i].markers_[j];
285                            if (markerInCluster) {
286                                var innerMarker = markerInCluster.get('trk');
287                                if (markerModel == innerMarker) {
288                                    notFound = false;
289                                    var activeCluster = clusters[i];
290                                    activeGoogleMarker = markerInCluster;
291                                    clusterManager.removeMarker(markerInCluster, true);
292                                    markerInCluster.setMap(GMap.get_map());
293                                }
294                            }
295                        }
296                    }
297                }
298
299                if (!notFound) {
300                    link.className += ' markerPinOut';
301                }
302
303            } else {
304                var innerMarkerShown = markerModel.get_marker();
305                if (innerMarkerShown) {
306                    clusterManager.addMarker(innerMarkerShown, true);
307                    innerMarkerShown.setMap(null);
308
309                    link.className = link.className.replace(' markerPinOut', '');
310                }
311            }
312        }
313
314    }
315}

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.