PageSourceSearch

https://vinosalicantedop.org/wp-content/plugins/wd-google-maps/js/init_map.js?ver=5.0.53

js vinosalicantedop.org collected 2026-10-02 12:44:02 UTC 31,753 bytes, 696 lines download raw bytes

1////////////////////////////////////////////////////////////////////////////////////////
2// Events                                                                             //
3////////////////////////////////////////////////////////////////////////////////////////
4////////////////////////////////////////////////////////////////////////////////////////
5// Constants                                                                          //
6////////////////////////////////////////////////////////////////////////////////////////
7////////////////////////////////////////////////////////////////////////////////////////
8// Variables                                                                          //
9////////////////////////////////////////////////////////////////////////////////////////
10var gmwdmapDataOptions = [];
11
12////////////////////////////////////////////////////////////////////////////////////////
13// Constructor & Destructor                                                           //
14////////////////////////////////////////////////////////////////////////////////////////
15
16function gmwdInitMainMap(el, excludeOverlays, key){
17
18	gmwdmapData["main_map" + key] = new google.maps.Map(document.getElementById(el), {
19		center: {lat: gmwdmapData["centerLat" + key], lng: gmwdmapData["centerLng" + key]},		
20		zoom: gmwdmapData["zoom" + key],
21		maxZoom: gmwdmapData["maxZoom" + key],
22		minZoom: gmwdmapData["minZoom" + key],
23		scrollwheel: gmwdmapData["mapWhellScrolling" + key],
24		draggable: gmwdmapData["mapDragable" + key],	
25        disableDoubleClickZoom: gmwdmapData["mapDbClickZoom" + key],	        
26		zoomControl: gmwdmapData["enableZoomControl" + key],
27		mapTypeControl: gmwdmapData["enableMapTypeControl" + key],
28		scaleControl: gmwdmapData["enableScaleControl" + key],
29		streetViewControl: gmwdmapData["enableStreetViewControl" + key],
30		fullscreenControl: gmwdmapData["enableFullscreenControl" + key],
31		rotateControl: gmwdmapData["enableRotateControl" + key], 
32        zoomControlOptions:{
33            position: gmwdmapData["zoomControlPosition" + key] 
34        },
35        mapTypeControlOptions:{
36            position: gmwdmapData["mapTypeControlPosition" + key],
37            style: gmwdmapData["mapTypeControlStyle" + key]
38        }, 
39        fullscreenControlOptions:{
40            position: gmwdmapData["fullscreenControlPosition" + key] 
41        },	
42        streetViewControlOptions:{
43            position: gmwdmapData["streetViewControlPosition" + key] 
44        },
45 		
46	}); 
47    gmwdmapData["main_map" + key].setTilt(45);
48	gmwdSetMapTypeId(key);
49	
50
51	//themes   
52    jQuery("#wd-map" + key).css("border-radius", gmwdmapData["mapBorderRadius" + key] + "px");
53	gmwdmapData["main_map" + key].setOptions({styles:eval(gmwdmapData["mapTheme" + key])});
54	
55	//layers
56	gmwdSetLayers("bike", key);
57	gmwdSetLayers("traffic", key);
58	gmwdSetLayers("transit", key);
59	gmwdSetGeoRSSURL(key);
60	gmwdSetKMLURL(key);
61	gmwdSetFusionTableId(key);
62    
63	if(excludeOverlays == false){
64        // overlays
65        gmwdSetMapMarkers(key);
66        gmwdSetMapCircles(key);
67        gmwdSetMapPolygons(key);
68        gmwdSetMapPolylines(key);
69        gmwdSetMapRectangles(key);
70    }
71
72    jQuery(document).on("click",".gm-fullscreen-control",function(){
73        setTimeout(function(){ 
74            gmwdmapData["main_map" + key].setCenter({lat: Number(gmwdmapData["centerLat" + key]), lng: Number(gmwdmapData["centerLng" + key])});
75            gmwdmapData["main_map" + key].setZoom(gmwdmapData["zoom" + key]);
76        }, 300);
77
78    });
79	
80}
81
82function gmwdSetMapMarkers(_key){
83	var mapMarker;
84    gmwdmapData["allMarkers" + _key] = [];
85    if(Object.keys(gmwdmapData["mapMarkers" + _key]).length > 0){
86        for(var key in gmwdmapData["mapMarkers" + _key]){
87            mapMarker = gmwdmapData["mapMarkers" + _key][key];
88            var marker = new google.maps.Marker({
89                map: gmwdmapData["main_map" + _key],
90                position: {lat: Number(mapMarker.lat), lng: Number(mapMarker.lng)}
91            });
92            gmwdmapData["allMarkers" + _key].push(marker);
93            var infoWindow;
94            if(mapMarker.enable_info_window == 1){
95                contentString = '';
96                contentString += '<div style="float:left;max-width: 160px;">'; 
97                if(gmwdmapData["infoWindowInfo" + _key].indexOf("title") != -1){
98                    contentString += '<div class="gmwd-infowindow-title">' + mapMarker.title + '</div>';
99                }
100                if(gmwdmapData["infoWindowInfo" + _key].indexOf("address") != -1){
101
102                    contentString += '<div class="gmwd-infowindow-address">' +  mapMarker.address + '</div>';
103                } 
104                if(gmwdmapData["infoWindowInfo" + _key].indexOf("desc") != -1){
105                    var description = typeof mapMarker.description == "object" ? decodeEntities(mapMarker.description.join("<br>")) : decodeEntities(mapMarker.description);
106                    contentString += "<div  class='gmwd-infowindow-description'>" + description + "</div>";
107                } 
108                if(gmwdmapData["enableDirections" + _key] == 1){
109                    contentString += "<div style='clear:both;'> <a href='javascript:void(0)' data-lat='" + Number(mapMarker.lat) + "' data-lng='" + Number(mapMarker.lng) + "' data-address='" + mapMarker.address + "' class='gmwd_direction' data-key='" + _key + "' onclick='showDirectionsBox(this);'>Get Directions</a></div>";
110                }
111                contentString += '</div>'; 
112                if(mapMarker.pic_url && gmwdmapData["infoWindowInfo" + _key].indexOf("pic") != -1){
113                    contentString +=  '<img src="' + mapMarker.pic_url + '"  style="float:right; margin-left: 10px; max-width:100px!important">';
114                }
115                infoWindow = new google.maps.InfoWindow({
116                    content: contentString,
117                    disableAutoPan: false
118                });	
119                if(mapMarker.info_window_open == 1){
120                    infoWindow.open(gmwdmapData["main_map" + _key], marker);
121                }
122                gmwdmapData["infoWindows" + _key].push(infoWindow);
123            }
124        
125            if(mapMarker.title){
126                marker.setTitle(mapMarker.title);
127            }
128
129            var size = Number(mapMarker.marker_size); 
130            if(mapMarker.custom_marker_url){          
131                var image = {
132                    url : mapMarker.custom_marker_url,
133                    scaledSize: new google.maps.Size(size, size)
134                };           
135                marker.setIcon(image);
136            } 
137            else if(markerDefaultIcon){ 
138                var image = {
139                    url : markerDefaultIcon,
140                    scaledSize: new google.maps.Size(size, size)
141                };         
142                marker.setIcon(image);
143            }		
144            
145            if(mapMarker.animation == "BOUNCE"){
146                marker.setAnimation(google.maps.Animation.BOUNCE)
147              }
148              else if(mapMarker.animation == "DROP"){
149                marker.setAnimation(google.maps.Animation.DROP)
150              } 
151              else{
152                marker.setAnimation(null);
153              }
154            
155            //events
156            (function(overlay, row, overlayWindow, map, openEvent, overlayWindows, infoWindowtype, _key) { 
157        
158                google.maps.event.addListener(overlay, 'click', function() {
159                    if(row.link_url){
160                        window.open(row.link_url);
161                    }
162                    if(openEvent == "click"){
163                      
164                        if(overlayWindow && row.enable_info_window == 1){
165                            for(var j=0; j < overlayWindows.length; j++){
166                                overlayWindows[j].open(null, null);
167                            }
168                            
169                            if(overlayWindow && infoWindowtype == 0){
170                                overlayWindow.open(map, overlay);	
171                            }
172                            else if(infoWindowtype == 1){
173                                gmwdAdvancedInfoWindow(row, _key);
174                            }
175                        }
176                    }				
177                });
178                google.maps.event.addListener(overlay, 'mouseover', function() {		
179                    if(openEvent == "hover"){
180                        
181                        if(row.enable_info_window == 1){
182                            for(var j=0; j < overlayWindows.length; j++){
183                                overlayWindows[j].open(null, null);
184                            }
185                            if(overlayWindow && infoWindowtype == 0){
186                                overlayWindow.open(map, overlay);	
187                            }
188                            else if(infoWindowtype == 1){
189                                gmwdAdvancedInfoWindow(row, _key);
190                            }
191                        }
192                    }				
193                });
194            
195            }(marker, mapMarker, infoWindow, gmwdmapData["main_map" + _key], gmwdmapData["infoWindowOpenOn" + _key],  gmwdmapData["infoWindows" + _key], gmwdmapData["infoWindowtype" + _key], _key));
196        
197        }
198    }
199
200    if(typeof gmwdmapData["markerCLustering" + _key] != "undefined" && gmwdmapData["markerCLustering" + _key] == "1" ){
201        var options = [gmwdmapData["markerCLusteringZoom" + _key], gmwdmapData["markerCLusteringSize" + _key], gmwdmapData["markerCLusteringStyle" + _key]];
202       
203        createMarkerCluster(gmwdmapData["allMarkers" + _key], gmwdmapData["main_map" + _key], options); 
204    }
205}
206
207function gmwdSetMapCircles(_key){
208	var mapCircle, circle, circleHover, circlMarker;
209    if(Object.keys(gmwdmapData["mapCircles" + _key]).length > 0){
210        for(var key in gmwdmapData["mapCircles" + _key]){
211            mapCircle = gmwdmapData["mapCircles" + _key][key];
212             
213            if(mapCircle.show_marker == 1){
214                circleMarker = new google.maps.Marker({
215                    map: gmwdmapData["main_map" + _key],
216                    position: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) }
217                });
218                if(markerDefaultIcon){	
219                    var image = {
220                        url : markerDefaultIcon,
221                        scaledSize: new google.maps.Size(32, 32)
222                    };             
223                    circleMarker.setIcon(image);
224                }          
225                circleMarker.setMap(gmwdmapData["main_map" + _key]);
226                 if(mapCircle.enable_info_window == 1){
227                    (function(circleMarker) { 
228                        var infoWindow = new google.maps.InfoWindow({
229                            content: mapCircle.center_address,
230							disableAutoPan: false
231                        });
232                        google.maps.event.addListener(circleMarker, 'click', function() {
233                            for(var j=0; j < gmwdmapData["infoWindows" + _key].length; j++){
234                                gmwdmapData["infoWindows" + _key][j].open(null, null);
235                            } 
236                            infoWindow.open(gmwdmapData["main_map" + _key], circleMarker);
237                            gmwdmapData["infoWindows" + _key].push(infoWindow);                            
238                        });                   
239                    }(circleMarker));
240                }                
241                gmwdmapData["allCircleMarkers" + _key].push(circlMarker);
242            }
243                  
244             circle = new google.maps.Circle({
245                strokeWeight:Number(mapCircle.line_width),
246                strokeColor: "#" + mapCircle.line_color,
247                strokeOpacity: Number(mapCircle.line_opacity),
248                fillColor: "#" + mapCircle.fill_color,
249                fillOpacity: Number(mapCircle.fill_opacity),
250                center: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) },
251                radius: Number(mapCircle.radius)
252            });
253            
254            circleHover = new google.maps.Circle({
255                strokeWeight:Number(mapCircle.line_width),
256                strokeColor: "#" + mapCircle.line_color_hover,
257                strokeOpacity: Number(mapCircle.line_opacity_hover),
258                fillColor: "#" + mapCircle.fill_color_hover,
259                fillOpacity: Number(mapCircle.fill_opacity_hover),
260                center: {lat: Number(mapCircle.center_lat), lng: Number(mapCircle.center_lng) },
261                radius: Number(mapCircle.radius)
262            });
263            
264            gmwdmapData["allCircles" + _key].push(circle,circleHover);
265            circle.setMap(gmwdmapData["main_map" + _key]);
266            
267            //events
268            (function(overlay, overlayHover, row, map) { 
269
270                google.maps.event.addListener(overlayHover, 'click', function() {
271                    if(row.link)
272                        window.open(row.link);
273                });
274                    
275                google.maps.event.addListener(overlay,"mouseover",function(){
276                    overlay.setMap(null);
277                    overlayHover.setOptions({strokeWeight: Number(row.line_width)});
278                    overlayHover.setOptions({radius: Number(row.radius)});
279                    overlayHover.setMap(map);
280                }); 
281                google.maps.event.addListener(overlayHover,"mouseover",function(){
282                    if(row.title){
283                        this.getMap().getDiv().setAttribute('title',row.title);
284                     }				
285                });
286                google.maps.event.addListener(overlayHover,"mouseout",function(){
287                    this.getMap().getDiv().removeAttribute('title');
288                    overlayHover.setMap(null);				
289                    overlay.setMap(map);				
290                }); 		
291            
292            }(circle, circleHover, mapCircle, gmwdmapData["main_map" + _key]));	
293
294        }
295    }
296
297}
298
299function gmwdSetMapRectangles(_key){
300	var mapRectangle, rectangle, rectangleHover,bounds; 
301    if(Object.keys(gmwdmapData["mapRectangles" + _key]).length > 0){
302        for(var key in gmwdmapData["mapRectangles" + _key]){
303            var bounds = [];
304            mapRectangle = gmwdmapData["mapRectangles" + _key][key];
305            var southWestAr = mapRectangle.south_west.split(",");
306            var northEastAr = mapRectangle.north_east.split(",");
307            var southWest = new google.maps.LatLng(Number(southWestAr[0]),Number(southWestAr[1]));
308            var northEast = new google.maps.LatLng(Number(northEastAr[0]),Number(northEastAr[1])); 
309            
310            bounds = new google.maps.LatLngBounds(southWest,northEast);  
311            if(mapRectangle.show_markers == 1){
312                var topPositions = [];
313                topPositions.push(new google.maps.LatLng(southWest.lat(), southWest.lng()));
314                topPositions.push(new google.maps.LatLng(northEast.lat(), southWest.lng()));
315                topPositions.push(new google.maps.LatLng(northEast.lat(), northEast.lng()));
316                topPositions.push(new google.maps.LatLng(southWest.lat(), northEast.lng()));
317                for(var j=0; j<topPositions.length; j++){
318                    var marker = new google.maps.Marker({
319                        position: topPositions[j],
320                        map: gmwdmapData["main_map" + _key]		
321                    });
322                    if(markerDefaultIcon){	
323                        var image = {
324                            url : markerDefaultIcon,
325                            scaledSize: new google.maps.Size(32, 32)
326                        };             
327                        marker.setIcon(image);
328                    }
329                    if(mapRectangle.enable_info_windows == 1){  
330                        showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key);
331                    }                     
332                }
333            }
334            rectangle = new google.maps.Rectangle({
335                strokeWeight:Number(mapRectangle.line_width),
336                strokeColor: "#" + mapRectangle.line_color,
337                strokeOpacity: Number(mapRectangle.line_opacity),
338                fillColor: "#" + mapRectangle.fill_color,
339                fillOpacity: Number(mapRectangle.fill_opacity),
340                bounds: bounds,
341            });
342            
343            rectangleHover = new google.maps.Rectangle({
344                strokeWeight:Number(mapRectangle.line_width),
345                strokeColor: "#" + mapRectangle.line_color_hover,
346                strokeOpacity: Number(mapRectangle.line_opacity_hover),
347                fillColor: "#" + mapRectangle.fill_color_hover,
348                fillOpacity: Number(mapRectangle.fill_opacity_hover),
349                bounds: bounds,
350            });
351            gmwdmapData["allRectangles" + _key].push(rectangle, rectangleHover);
352            rectangle.setMap(gmwdmapData["main_map" + _key]);
353            
354            (function(overlay, overlayHover, row, map) { 
355                google.maps.event.addListener(overlayHover, 'click', function() {
356                    if(row.link)
357                        window.open(row.link);
358                });
359                    
360                google.maps.event.addListener(overlay,"mouseover",function(){
361                    overlay.setMap(null);
362                    overlayHover.setMap(map);
363                }); 
364                google.maps.event.addListener(overlayHover,"mouseover",function(){
365                    if(row.title){
366                        this.getMap().getDiv().setAttribute('title',row.title);
367                     }				
368                });
369                google.maps.event.addListener(overlayHover,"mouseout",function(){
370                    this.getMap().getDiv().removeAttribute('title');
371                    overlayHover.setMap(null);				
372                    overlay.setMap(map);				
373                }); 		
374            
375            }(rectangle, rectangleHover, mapRectangle, gmwdmapData["main_map" + _key]));	       
376            
377        }
378    }
379}
380function gmwdSetMapPolygons(_key){
381	var mapPolygon, polygon, polygonHover;
382    var polygonsByAreas = {};
383    var polygonsAreas = [];
384    if(Object.keys(gmwdmapData["mapPolygons" + _key]).length > 0){
385        for(var key in gmwdmapData["mapPolygons" + _key]){
386            var polygonCoord = [];
387            mapPolygon = gmwdmapData["mapPolygons" + _key][key];
388            polygonData = mapPolygon.data.substr(1, mapPolygon.data.length-4).split("),(");
389            for(var j=0; j<polygonData.length; j++){
390                var polygonMarker = polygonData[j].split(",");
391                if(mapPolygon.show_markers == 1){										
392                    var marker = new google.maps.Marker({
393                        map: gmwdmapData["main_map" + _key],
394                        position: {lat: Number(polygonMarker[0]), lng: Number(polygonMarker[1]) }
395                    });
396                    if(markerDefaultIcon){	
397                        var image = {
398                            url : markerDefaultIcon,
399                            scaledSize: new google.maps.Size(32, 32)
400                        };             
401                        marker.setIcon(image);
402                    }                     
403                    marker.setMap(gmwdmapData["main_map" + _key]);
404                    gmwdmapData["allPolygonMarkers" + _key].push(marker);
405                    if(mapPolygon.enable_info_windows == 1){  
406                        showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key);
407                    }                    
408                }
409
410                polygonCoord.push(new google.maps.LatLng( Number(polygonMarker[0]), Number(polygonMarker[1])));
411            }
412            
413            polygon = new google.maps.Polygon({
414                strokeWeight:Number(mapPolygon.line_width),
415                strokeColor: "#" + mapPolygon.line_color,
416                strokeOpacity: Number(mapPolygon.line_opacity),
417                fillColor: "#" + mapPolygon.fill_color,
418                fillOpacity: Number(mapPolygon.fill_opacity),
419                paths: polygonCoord,
420            });
421            
422            polygonHover = new google.maps.Polygon({
423                strokeWeight:Number(mapPolygon.line_width),
424                strokeColor: "#" + mapPolygon.line_color_hover,
425                strokeOpacity: Number(mapPolygon.line_opacity_hover),
426                fillColor: "#" + mapPolygon.fill_color_hover,
427                fillOpacity: Number(mapPolygon.fill_opacity_hover),
428                paths: polygonCoord,
429            });
430            gmwdmapData["allPolygons" + _key].push(polygon, polygonHover);
431           // polygon.setMap(gmwdmapData["main_map" + _key]);
432            var polygonArea = google.maps.geometry.spherical.computeArea(polygon.getPath());
433            polygonsByAreas[polygonArea] = [polygon,polygonHover]; 
434            polygonsAreas.push(polygonArea);
435            (function(overlay, overlayHover, row, map) { 
436                google.maps.event.addListener(overlayHover, 'click', function() {
437                    if(row.link)
438                        window.open(row.link);
439                });
440                    
441                google.maps.event.addListener(overlay,"mouseover",function(){
442                    overlay.setMap(null);
443                    overlayHover.setMap(map);
444                }); 
445                google.maps.event.addListener(overlayHover,"mouseover",function(){
446                    if(row.title){
447                        this.getMap().getDiv().setAttribute('title',row.title);
448                     }				
449                });
450                google.maps.event.addListener(overlayHover,"mouseout",function(){
451                    this.getMap().getDiv().removeAttribute('title');
452                    overlayHover.setMap(null);				
453                    overlay.setMap(map);				
454                });
455            
456            }(polygon, polygonHover, mapPolygon, gmwdmapData["main_map" + _key]));	
457           
458        }
459    }
460    polygonsAreas.sort(function(a,b){return b - a});
461
462    for(var i=0; i< polygonsAreas.length ; i++){
463        polygonsByAreas[polygonsAreas[i]][0].setMap(gmwdmapData["main_map" + _key]);
464        polygonsByAreas[polygonsAreas[i]][0].setOptions({zIndex: i+1});
465        polygonsByAreas[polygonsAreas[i]][1].setOptions({zIndex: i+1});
466     
467    }
468	
469}
470
471function gmwdSetMapPolylines(_key){
472	var mapPolyline, polyline, polylineHover; 
473	if(Object.keys(gmwdmapData["mapPolylines" + _key]).length > 0){
474        for(var key in gmwdmapData["mapPolylines" + _key]){
475            var polylineCoord = [];
476            mapPolyline = gmwdmapData["mapPolylines" + _key][key];
477            polylineData = mapPolyline.data.substr(1, mapPolyline.data.length-4).split("),(");
478            for(var j=0; j<polylineData.length; j++){
479                var polylineMarker = polylineData[j].split(",");
480                if(mapPolyline.show_markers == 1){										
481                    var marker = new google.maps.Marker({
482                        map: gmwdmapData["main_map" + _key],
483                        position: {lat: Number(polylineMarker[0]), lng: Number(polylineMarker[1]) }
484                    });
485                    gmwdmapData["allPolylineMarkers" + _key].push(marker);
486                    if(markerDefaultIcon){	
487                        var image = {
488                            url : markerDefaultIcon,
489                            scaledSize: new google.maps.Size(32, 32)
490                        };             
491                        marker.setIcon(image);
492                    }                     
493                    marker.setMap(gmwdmapData["main_map" + _key]);
494                }
495                if(mapPolyline.enable_info_windows == 1){  
496                    showPoiInfoWindow(gmwdmapData["main_map" + _key], marker, _key);
497                }               
498                polylineCoord.push(new google.maps.LatLng( Number(polylineMarker[0]), Number(polylineMarker[1])));
499            }
500            
501            polyline = new google.maps.Polyline({
502                strokeWeight:Number(mapPolyline.line_width),
503                strokeColor: "#" + mapPolyline.line_color,
504                strokeOpacity: Number(mapPolyline.line_opacity),
505                path: polylineCoord,
506                geodesic: true,
507            });
508
509            polylineHover = new google.maps.Polyline({
510                strokeWeight:Number(mapPolyline.line_width),
511                strokeColor: "#" + mapPolyline.line_color_hover,
512                strokeOpacity: Number(mapPolyline.line_opacity_hover),
513                path: polylineCoord,
514                geodesic: true,
515            });
516            gmwdmapData["allPolylines" + _key].push(polyline, polylineHover );
517            polyline.setMap(gmwdmapData["main_map" + _key]);
518            
519            (function(overlay, overlayHover, row, map) { 
520                google.maps.event.addListener(overlayHover, 'click', function() {
521                    if(row.link)
522                        window.open(row.link);
523                });
524                    
525                google.maps.event.addListener(overlay,"mouseover",function(){
526                    overlay.setMap(null);
527                    overlayHover.setMap(map);
528                }); 
529                google.maps.event.addListener(overlayHover,"mouseover",function(){
530                    if(row.title){
531                        this.getMap().getDiv().setAttribute('title',row.title);
532                     }				
533                });
534                google.maps.event.addListener(overlayHover,"mouseout",function(){
535                    this.getMap().getDiv().removeAttribute('title');
536                    overlayHover.setMap(null);				
537                    overlay.setMap(map);				
538                }); 
539            
540            }(polyline, polylineHover, mapPolyline, gmwdmapData["main_map" + _key]));	        
541                        
542                
543        }
544    }
545	
546}
547function showPoiInfoWindow(map, marker, key){
548
549   (function(marker, map) { 
550        var geocoder = new google.maps.Geocoder();            
551        geocoder.geocode({       
552            latLng: marker.getPosition()     
553        }, 
554        function(responses) {  
555           if (responses && responses.length > 0) {
556                var infoWindow = new google.maps.InfoWindow({
557                    content: responses[0].formatted_address,
558					disableAutoPan: false					
559                });  
560                 google.maps.event.addListener(marker, 'click', function() {
561                    for(var j=0; j <  gmwdmapData["infoWindows" + key].length; j++){
562                         gmwdmapData["infoWindows" + key][j].open(null, null);
563                    } 
564                    infoWindow.open(map, marker); 
565                    gmwdmapData["infoWindows" + key].push(infoWindow);                    
566                });                        
567           }  
568        }); 
569    }(marker, map));     
570}
571
572////////////////////////////////////////////////////////////////////////////////////////
573// Public Methods                                                                     //
574////////////////////////////////////////////////////////////////////////////////////////
575
576
577function gmwdSetMapTypeId(key){
578	switch(gmwdmapData["mapType" + key]){
579		case "0" :
580			gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.ROADMAP);
581			break;
582		case "1" :	
583			gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.SATELLITE);
584			break;
585		case "2":	
586			gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.HYBRID);
587			break;
588		case "3":		
589			gmwdmapData["main_map" + key].setMapTypeId(google.maps.MapTypeId.TERRAIN);
590			break;				
591	}
592}
593
594
595function gmwdSetLayers(type, key){
596	switch(type){
597		case "bike" :
598			if(gmwdmapData["enableBykeLayer" + key] == 1){
599				 gmwdmapDataOptions["bikeLayer" + key] = new google.maps.BicyclingLayer();
600				 gmwdmapDataOptions["bikeLayer" + key].setMap(gmwdmapData["main_map" + key]);
601			 }
602			 else{
603				if(gmwdmapDataOptions["bikeLayer" + key]){
604					gmwdmapDataOptions["bikeLayer" + key].setMap(null);
605				}
606			 }
607			 break;
608		case "traffic" :	 
609			if(gmwdmapData["enableTrafficLayer" + key] == 1){
610				gmwdmapDataOptions["trafficLayer" + key] = new google.maps.TrafficLayer();
611				gmwdmapDataOptions["trafficLayer" + key].setMap(gmwdmapData["main_map" + key]);
612			 }
613			 else{
614				if(gmwdmapDataOptions["trafficLayer" + key]){
615					gmwdmapDataOptions["trafficLayer" + key].setMap(null);
616				}
617			 }	
618			 break;	
619		case "transit" :	 
620			if(gmwdmapData["enableTransitLayer" + key] == 1){
621				gmwdmapDataOptions["transitLayer" + key] = new google.maps.TransitLayer();
622				gmwdmapDataOptions["transitLayer" + key].setMap(gmwdmapData["main_map" + key]);
623			 }
624			 else{
625				if(gmwdmapDataOptions["transitLayer" + key]){
626					gmwdmapDataOptions["transitLayer" + key].setMap(null);
627				}
628			 }	
629			 break;					 
630	}
631}
632
633function gmwdSetGeoRSSURL(key){
634	if(gmwdmapData["geoRSSURL" + key]){
635		gmwdmapDataOptions["georssLayer" + key] = new google.maps.KmlLayer({
636			url: gmwdmapData["geoRSSURL" + key]
637		  });
638		gmwdmapDataOptions["georssLayer" + key].setMap(gmwdmapData["main_map" + key]);
639	}
640	else{
641		if(gmwdmapDataOptions["georssLayer" + key]){
642			gmwdmapDataOptions["georssLayer" + key].setMap(null);
643		}
644	}
645}
646
647function gmwdSetKMLURL(key){
648	if(gmwdmapData["KMLURL" + key]){
649	  gmwdmapDataOptions["ctaLayer" + key] = new google.maps.KmlLayer({
650		  url: gmwdmapData["KMLURL" + key],
651          preserveViewport: true
652	  });
653		gmwdmapDataOptions["ctaLayer" + key].setMap(gmwdmapData["main_map" + key]);
654	}
655	else{
656		if(gmwdmapDataOptions["ctaLayer" + key]){
657			gmwdmapDataOptions["ctaLayer" + key].setMap(null);
658		}
659	}
660}
661
662function gmwdSetFusionTableId(key){
663	if(gmwdmapData["fusionTableId" + key]){
664      var fusionTableWhere = (gmwdmapData["fusionTableWhereField" + key] && gmwdmapData["fusionTableWhereOperator" + key] && gmwdmapData["fusionTableWhereValue" + key]) ? "'" + gmwdmapData["fusionTableWhereField" + key].trim() + "' " + gmwdmapData["fusionTableWhereOperator" + key] + ((gmwdmapData["fusionTableWhereOperator" + key] != "IN") ? " '" + gmwdmapData["fusionTableWhereValue" + key].trim() + "'" : " " + gmwdmapData["fusionTableWhereValue" + key].trim()) : '';  
665      
666	  gmwdmapDataOptions["fusionTablesLayer" + key] = new google.maps.FusionTablesLayer({
667		query: {
668		  select: '\'Geocodable address\'',
669		  from: gmwdmapData["fusionTableId" + key],
670          where: fusionTableWhere
671		}
672	  });
673	  gmwdmapDataOptions["fusionTablesLayer" + key].setMap(gmwdmapData["main_map" + key]);
674	}
675	else{
676		if(gmwdmapDataOptions["fusionTablesLayer" + key]){
677			gmwdmapDataOptions["fusionTablesLayer" + key].setMap(null);
678		}
679	}
680
681}
682
683
684
685
686
687////////////////////////////////////////////////////////////////////////////////////////
688// Getters & Setters                                                                  //
689////////////////////////////////////////////////////////////////////////////////////////
690
691////////////////////////////////////////////////////////////////////////////////////////
692// Private Methods                                                                    //
693////////////////////////////////////////////////////////////////////////////////////////
694////////////////////////////////////////////////////////////////////////////////////////
695// Listeners                                                                          //
696////////////////////////////////////////////////////////////////////////////////////////

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.