1var siteMaps = function () { 2 3 4 var data; 5 var gm; 6 var markerClusterer; 7 8 9 //markers = {}; 10 var markers = []; 11 var groups = []; 12 markerList = []; 13 groupsList = []; 14 var mgr; 15 var allmarkers = []; 16 var itemicon = []; 17 var openwindow; 18 var grId; 19 var initZoom = 1; 20 var initMarkers = 0; 21 var ib = new InfoBox(); 22 var countryZoomMax = 6; 23 24 function getMarkerIcon(markerColor) { 25 if ((typeof(markerColor) == "undefined") || (markerColor == null)) { 26 markerColor = "black"; 27 } 28 if (!itemicon[markerColor]) { 29 itemicon[markerColor] = new google.maps.MarkerImage(ip.baseUrl + "Plugin/SiteMaps/assets/img/marker-icon-" + markerColor + ".png"); 30 } 31 return itemicon[markerColor]; 32 } 33 34 itemicon["black"] = getMarkerIcon("black"); 35 itemicon["orange"] = getMarkerIcon("orange"); 36 itemicon["black-mini"] = getMarkerIcon("black-mini"); 37 itemicon["orange-mini"] = getMarkerIcon("orange-mini"); 38 39 function getMapCenter() { 40 if (grId) { 41 fitMap(grId); 42 } 43 } 44 45 function extMapCenter(getGid) { 46 if (getGid && initZoom) { 47 fitMap(getGid); 48 } 49 } 50 51 function init(settings) { 52 53 var iden = settings.mapdata.iden; 54 gm = settings.mapdata.markersgm; 55 var options = { 56 zoom: parseInt(settings.mapdata.mapZoom), 57 center: new google.maps.LatLng(settings.mapdata.lat, settings.mapdata.lon), 58 mapTypeId: google.maps.MapTypeId.ROADMAP, 59 styles: styles, 60 mapTypeControl: false, 61 streetViewControl: false, 62 scrollwheel: false, 63 maxZoom: 16 64 }; 65 66 map = new google.maps.Map(document.getElementById(settings.idSelector), options); 67 markerLocation = settings.markerLocation; 68 var elements = getMapElements(iden); 69 loadMarkerClusterer(); 70 //getElements(elements); 71 72 var $mapBlockContainer = $(".map-block-container"); 73 74 google.maps.event.addListenerOnce(map, 'idle', function () { 75 76 $mapBlockContainer.height($(window).height() - $mapBlockContainer.offset().top); 77 google.maps.event.trigger(map, "resize"); 78 }); 79 80 /*google.maps.event.addDomListener(window, 'load', function () { 81 loadMarkerClusterer(); 82 });*/ 83 84 google.maps.event.addDomListener(window, "resize", function () { 85 var center = map.getCenter(); 86 google.maps.event.trigger(map, "resize"); 87 map.setCenter(center); 88 }); 89 90 if (settings.mapdata.showall == 1) { 91 mapResetToCountries(); 92 } 93 94 var dom = document.getElementsByClassName("map-container"); 95 for (var i = 0; i < dom.length; i++) { 96 dom[i].addEventListener('mousemove', function (e) { 97 e.stopPropagation(); 98 e.stopImmediatePropagation(); 99 }, false); 100 dom[i].addEventListener('touchmove', function (e) { 101 e.stopPropagation(); 102 e.stopImmediatePropagation(); 103 }, false); 104 } 105 } 106 107 function loadMarkerClusterer() { 108 "use strict"; 109 110 var $mapBlockContainer = $(".map-block-container"); 111 $mapBlockContainer.height($(window).height() - $mapBlockContainer.offset().top); 112 113 google.maps.event.trigger(map, "resize"); 114 115 var boxText = document.createElement("div"); 116 boxText.style.cssText = "color: #000;padding: 37px 23px; text-align: center;"; 117 118 var infoboxOptions = { 119 content: boxText, 120 disableAutoPan: false, 121 maxWidth: 0, 122 pixelOffset: new google.maps.Size(-113, -310), 123 zIndex: null, 124 boxStyle: { 125 background: "url('" + ip.baseUrl + "Plugin/SiteMaps/assets/img/marker-info-bg.png') no-repeat", 126 opacity: 1, 127 width: "229px", 128 height: "240px" 129 }, 130 closeBoxMargin: "20px 18px 0px 0px", 131 closeBoxURL: ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-info-close.png', 132 infoBoxClearance: new google.maps.Size(1, 1), 133 isHidden: false, 134 pane: "floatPane", 135 enableEventPropagation: false 136 }; 137 138 var markers = []; 139 var iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black-mini.png'; 140 var iconurlOrange = ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black-mini.png'; 141 var size = new google.maps.Size(70, 96); 142 143 if(window.devicePixelRatio > 1.5){ 144 iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected]'; 145 iconurlOrange = ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected]'; 146 size = new google.maps.Size(140, 177); 147 } 148 149 for (var i = 0; i < data.length; i++) { 150 var dataItem = data[i]; 151 //var markerImage = new google.maps.Marker(ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black-mini.png', new google.maps.Size(70, 96)); 152 var latLng = new google.maps.LatLng(dataItem.lat, 153 dataItem.lon); 154 155 156 157 var marker = new google.maps.Marker({ 158 position: latLng, 159 icon: { 160 url: iconurl, 161 size: size, 162 scaledSize: new google.maps.Size(70, 96), 163 origin: new google.maps.Point(0, 0), 164 anchor: new google.maps.Point(25, 96) 165 }, 166 title: dataItem.address, 167 phone: dataItem.phone, 168 itemlat: dataItem.lat, 169 itemlon: dataItem.lon, 170 dayone: dataItem.dayone, 171 daytwo: dataItem.daytwo, 172 daythree: dataItem.daythree, 173 dayfour: dataItem.dayfour, 174 timeone: dataItem.timeone, 175 timetwo: dataItem.timetwo, 176 timethree: dataItem.timethree, 177 timefour: dataItem.timefour, 178 countryid: dataItem.countryid 179 }); 180 181 google.maps.event.addListener(marker, "mouseover", (function (marker) { 182 return function () { 183 marker.setIcon({ 184 url: iconurlOrange, 185 size: size, 186 scaledSize: new google.maps.Size(70, 96), 187 origin: new google.maps.Point(0, 0), 188 anchor: new google.maps.Point(25, 96) 189 }); 190 } 191 })(marker)); 192 193 google.maps.event.addListener(marker, "mouseout", (function (marker) { 194 return function () { 195 marker.setIcon({ 196 url: iconurl, 197 size: size, 198 scaledSize: new google.maps.Size(70, 96), 199 origin: new google.maps.Point(0, 0), 200 anchor: new google.maps.Point(25, 96) 201 }); 202 } 203 })(marker)); 204 205 google.maps.event.addListener(marker, 'click', (function (marker) { 206 closeIW(); 207 var timeContent = ''; 208 209 var cols = 0; 210
211 if (typeof marker.dayone !== 'undefined' && typeof marker.timeone !== 'undefined' && marker.dayone && marker.timeone) { 212 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.dayone + '</div><div class="value">' + marker.timeone + '</div></div>'; 213 cols++; 214 } 215 216 if (typeof marker.daytwo !== 'undefined' && typeof marker.timetwo !== 'undefined' && marker.daytwo && marker.timetwo) { 217 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.daytwo + '</div><div class="value">' + marker.timetwo + '</div></div>'; 218 cols++; 219 } 220 221 if (typeof marker.daythree !== 'undefined' && typeof marker.timethree !== 'undefined' && marker.daythree && marker.timethree) { 222 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.daythree + '</div><div class="value">' + marker.timethree + '</div></div>'; 223 cols++; 224 } 225 226 if (typeof marker.dayfour !== 'undefined' && typeof marker.timefour !== 'undefined' && marker.dayfour && marker.timefour) { 227 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.dayfour + '</div><div class="value">' + marker.timefour + '</div></div>'; 228 cols++; 229 } 230 231 var cls = ''; 232 switch (cols) { 233 case 1: 234 cls = ' one-col'; 235 break; 236 case 2: 237 cls = ' two-col'; 238 break; 239 case 3: 240 cls = ' three-col'; 241 break; 242 case 4: 243 cls = ' four-col'; 244 break; 245 } 246 247 return function () { 248 marker.setIcon({ 249 url: iconurl, 250 size: size, 251 scaledSize: new google.maps.Size(70, 96), 252 origin: new google.maps.Point(0, 0), 253 anchor: new google.maps.Point(25, 96) 254 }); 255 ib.setOptions(infoboxOptions); 256 boxText.innerHTML = '<div class="infowindow-container"><div class="title">' + marker.title + '</div><div class="phone">' + marker.phone + '</div><div class="worktime' + cls + '">' + timeContent + '</div></div>'; 257 ib.open(map, marker); 258 } 259 260 })(marker)); 261 262 markers.push(marker); 263 } 264 265 266 267 var iconBlackUrl = 'Plugin/SiteMaps/assets/img/[email protected]'; 268 269 //if(window.devicePixelRatio > 1.5){ 270 //iconBlackUrl = 'Plugin/SiteMaps/assets/img/[email protected]'; 271 //} 272 273 var csizew = 70; 274 var csizeh = 96; 275 276 277 if(window.devicePixelRatio > 1.5){ 278 csizew = 70; 279 csizeh = 95; 280 } 281 282 var markerCluster = new MarkerClusterer(map, markers, { 283 onClusterIconAdded: function (clusterDiv) { 284 "use strict"; 285 286 $(clusterDiv).mouseover(function () { 287 $(this).css('background-image', 'url(' + ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected])'); 288 $(this).css('background-size', 'cover'); 289 }).mouseleave(function () { 290 $(this).css('background-image', 'url(' + ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected])'); 291 $(this).css('background-size', 'cover'); 292 }); 293 }, 294 gridSize: 65, 295 maxZoom: 16, 296 enableRetinaIcons: true, 297 styles: [{ 298 url: ip.baseUrl + iconBlackUrl, 299 height: csizeh, 300 width: csizew, 301 anchor: [4, 53], 302 textColor: '#fff', 303 textSize: 12 304 }], 305 306 }); 307 } 308 309 function moveMap(lat, lon, makezoom, zoomlevel) { 310 map.setCenter(new google.maps.LatLng(lat, lon)); 311 if (makezoom) { 312 map.setZoom(zoomlevel); 313 } 314 } 315 316 function mapResetToCountries() { 317 showCountriesOnMap(); 318 } 319 320 function mapResetToGroupByCountry(country) { 321 var group = getGroupFromCountry(country); 322 showGroupOnMap(group); 323 } 324 325 function fitMap(groupid) { 326 327 var markersBounce = []; 328 var bounceList = []; 329 330 $.each(data, function (index, item) { 331 332 if (item.cityid == groupid) { 333 var marker = { 334 id: item.id, 335 name: item.cityname, 336 lat: item.lat, 337 lon: item.lon, 338 map: map 339 }; 340 markersBounce.push(marker); 341 bounceList.push(item.id); 342 } 343 }); 344 345 var bounds = new google.maps.LatLngBounds(); 346 $.each(markersBounce, function (index, marker) { 347 var position = new google.maps.LatLng(marker.lat, marker.lon); 348 bounds.extend(position); 349 }); 350 351 map.setZoom(12); 352 map.fitBounds(bounds); 353 } 354 355 function getMapElements(iden) { 356 357 var params = []; 358 params.push({ 359 gid: iden 360 }); 361 362 var postData = {
363 'sa': 'SiteMaps.getMapElements', 364 'securityToken': ip.securityToken, 365 'params': params, 366 'jsonrpc': '2.0' 367 }; 368 369 $.ajax({ 370 url: ip.baseUrl, 371 data: postData, 372 dataType: 'json', 373 type: 'POST', 374 async: false, 375 success: function (response) { 376 if (response && response.result) { 377 data = response.result; 378 } else if (response && response.error && response.error.message) { 379 } else { 380 } 381 }, 382 error: function (response) { 383 } 384 }); 385 return data; 386 } 387 388 function getElements(itemsList) { 389 390 if (initMarkers == 0) { 391 var items = ( typeof itemsList !== 'undefined' ) ? itemsList : data; 392 393 if (gm) { 394 395 var uniqueGroups = []; 396 397 for (i = 0; i < data.length; i++) { 398 399 if (uniqueGroups.indexOf(data[i].cityid) === -1) { 400 uniqueGroups.push(data[i].cityid); 401 } 402 } 403 404 for (i = 0; i < items.length; i++) { 405 var item = items[i]; 406 if (groupsList.indexOf(item.cityid) !== -1) continue; 407 var group = { 408 id: item.cityid, 409 name: item.cityname, 410 lat: item.citylat, 411 lon: item.citylon, 412 map: map 413 }; 414 415 groups.push(group); 416 groupsList.push(item.cityid); 417 } 418 419 createMarkers(); 420 421 initMarkers = 1; 422 } 423 424 } else { 425 //console.log('disabled gm'); 426 } 427 428 } 429 430 function getCntMarkers(gid) { 431 var cnt = 0; 432 for (var i = 0; i < data.length; i++) { 433 if (data[i].cityid == gid) { 434 cnt += 1; 435 } 436 } 437 return cnt; 438 } 439 440 function getGroupsMarkers(groups) { 441 var groupsLayer = []; 442 for (var i = 0; i < groups.length; i++) { 443 var grItem = groups[i]; 444 445 var cnt = getCntMarkers(grItem.id); 446 447 var iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black.png'; 448 var size = new google.maps.Size(70, 96); 449 450 if(window.devicePixelRatio > 1.5){ 451 iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected]'; 452 size = new google.maps.Size(140, 190); 453 } 454 455 var groupOptions = { 456 position: new google.maps.LatLng(grItem.lat, grItem.lon), 457 title: grItem.name, 458 icon: iconurl, 459 size: size, 460 scaledSize: new google.maps.Size(70, 96), 461 grlat: grItem.lat, 462 grlon: grItem.lon, 463 grcid: grItem.id, 464 grcnt: cnt, 465 draggable: false, 466 labelContent: cnt, 467 labelAnchor: new google.maps.Point(-9, 70), 468 labelClass: "labels", 469 labelInBackground: true 470 }; 471 472 var marker = new MarkerWithLabel(groupOptions); 473 474 google.maps.event.addListener(marker, "mouseover", (function (marker) { 475 return function () { 476 marker.setIcon(itemicon["orange"]); 477 } 478 })(marker)); 479 480 google.maps.event.addListener(marker, "mouseout", (function (marker) { 481 return function () { 482 marker.setIcon(itemicon["black"]); 483 } 484 })(marker)); 485 486 487 /* 488 google.maps.event.addDomListener(document.getElementById("filter-"+grItem.id),"click",function() { 489 marker.setIcon(itemicon["orange"]); 490 }); 491 */ 492 google.maps.event.addListener(marker, 'click', (function (marker) { 493 return function () { 494 //moveMap(marker.grlat,marker.grlon, true, 15); 495 marker.setIcon(itemicon["black"]); 496 grId = marker.grcid; 497 fitMap(marker.grcid); 498 } 499 500 })(marker)); 501 502 groupsLayer.push(marker); 503 504 } 505 return groupsLayer; 506 } 507 508 function getCountryMarkersCount(country) { 509 var count = 0; 510 511 for (var i = 0; i < data.length; i++) { 512 if (data[i].countryid == country) { 513 count++; 514 } 515 } 516 517 return count; 518 } 519 520 function getCountryMarkersBounds(country) { 521 var latlngbounds = new google.maps.LatLngBounds(); 522 523 for (var i = 0; i < data.length; i++) { 524 if (data[i].countryid == country) { 525 latlngbounds.extend(new google.maps.LatLng(data[i].lat, data[i].lon)); 526 } 527 } 528 529 return latlngbounds; 530 } 531 532 function getGroupMarkersBounds(group) { 533 var latlngbounds = new google.maps.LatLngBounds(); 534 535 for (var i = 0; i < data.length; i++) { 536 if (data[i].groupid == group) { 537 latlngbounds.extend(new google.maps.LatLng(data[i].lat, data[i].lon)); 538 } 539 } 540 541 return latlngbounds; 542 } 543 544 function getAllMarkersBounds() { 545 var latlngbounds = new google.maps.LatLngBounds(); 546 547 for (var i = 0; i < data.length; i++) { 548 latlngbounds.extend(new google.maps.LatLng(data[i].lat, data[i].lon)); 549 } 550 551 return latlngbounds; 552 } 553 554 function getCountryIdList() { 555 var countries = []; 556 557 for (var i = 0; i < data.length; i++) { 558 countries.push(data[i].countryid); 559 } 560 561 return $.unique(countries); 562 } 563 564 function getGroupFromCountry(country) { 565 for (var i = 0; i < data.length; i++) { 566 if (data[i].countryid == country) { 567 return data[i].groupid; 568 } 569 } 570 } 571 572 function showGroupOnMap(group) { 573 var bounds = getGroupMarkersBounds(group); 574 map.fitBounds(bounds); 575 576 var zoom = map.getZoom() - 1; 577 if (zoom <= countryZoomMax) { 578 zoom = countryZoomMax + 1; 579 } 580 581 map.setZoom(zoom); 582 } 583 584 function showCountriesOnMap() { 585 var bounds = getAllMarkersBounds(); 586 map.fitBounds(bounds); 587 588 var zoom = map.getZoom() - 1; 589 map.setZoom(zoom); 590 } 591 592 function getCountryGroupMarkers() { 593 var groupsLayer = []; 594 595 var countries = getCountryIdList(); 596 597 598 599 var iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black.png'; 600 var size = new google.maps.Size(70, 96); 601 602 if(window.devicePixelRatio > 1.5){ 603 iconurl = ip.baseUrl + 'Plugin/SiteMaps/assets/img/[email protected]'; 604 size = new google.maps.Size(140, 190); 605 } 606 607 for (var i = 0; i < countries.length; i++) { 608 var country = countries[i]; 609 610 var markerCount = getCountryMarkersCount(country); 611 var markerBounds = getCountryMarkersBounds(country); 612 613 var groupOptions = { 614 position: markerBounds.getCenter(), 615 title: '', 616 icon: iconurl, 617 size: size, 618 scaledSize: new google.maps.Size(70, 96), 619 grlat: '', 620 grlon: '', 621 grcid: getGroupFromCountry(country), 622 grcnt: markerCount, 623 draggable: false, 624 labelContent: markerCount, 625 labelAnchor: new google.maps.Point(-15, 112),
626 labelClass: "labels", 627 labelInBackground: true 628 }; 629 630 var marker = new MarkerWithLabel(groupOptions); 631 google.maps.event.addListener(marker, "mouseover", (function (marker) { 632 return function () { 633 marker.setIcon(itemicon["orange"]); 634 } 635 })(marker)); 636 637 google.maps.event.addListener(marker, "mouseout", (function (marker) { 638 return function () { 639 marker.setIcon(itemicon["black"]); 640 } 641 })(marker)); 642 643 google.maps.event.addListener(marker, 'click', (function (marker) { 644 return function () { 645 marker.setIcon(itemicon["black"]); 646 showGroupOnMap(marker.grcid); 647 } 648 })(marker)); 649 650 groupsLayer.push(marker); 651 } 652 653 return groupsLayer; 654 } 655 656 function closeIW() { 657 if (ib) { 658 ib.close(); 659 } 660 } 661 662 function getMarkers(groups) { 663 var markersLayer = []; 664 665 666 667 for (i = 0; i < data.length; i++) { 668 var item = data[i]; 669 670 var boxText = document.createElement("div"); 671 boxText.style.cssText = "color: #000;padding: 32px 23px; text-align: center;"; 672 673 infoboxOptions = { 674 content: boxText, 675 disableAutoPan: false, 676 maxWidth: 0, 677 pixelOffset: new google.maps.Size(-175, -275), 678 zIndex: null, 679 boxStyle: { 680 background: "url('" + ip.baseUrl + "Plugin/SiteMaps/assets/img/marker-info-bg.png') no-repeat", 681 opacity: 1, 682 width: "207px", 683 height: "240px" 684 }, 685 closeBoxMargin: "20px 4px 0px 0px", 686 closeBoxURL: ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-info-close.png', 687 infoBoxClearance: new google.maps.Size(1, 1), 688 isHidden: false, 689 pane: "floatPane", 690 enableEventPropagation: false 691 }; 692 693 var markerOptions = { 694 position: new google.maps.LatLng(item.lat, item.lon), 695 title: item.address, 696 phone: item.phone, 697 icon: { 698 url: ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black-mini-11.png', 699 size: new google.maps.Size(70, 96), 700 origin: new google.maps.Point(0, 0), 701 anchor: new google.maps.Point(25, 96) 702 }, 703 itemlat: item.lat, 704 itemlon: item.lon, 705 dayone: item.dayone, 706 daytwo: item.daytwo, 707 daythree: item.daythree, 708 dayfour: item.dayfour, 709 timeone: item.timeone, 710 timetwo: item.timetwo, 711 timethree: item.timethree, 712 timefour: item.timefour, 713 countryid: item.countryid 714 }; 715 716 var marker = new google.maps.Marker(markerOptions); 717 718 google.maps.event.addListener(marker, "mouseover", (function (marker) { 719 return function () { 720 marker.setIcon(itemicon["orange-mini"]); 721 } 722 })(marker)); 723 724 google.maps.event.addListener(marker, "mouseout", (function (marker) { 725 return function () { 726 marker.setIcon(itemicon["black-mini"]); 727 } 728 })(marker)); 729 730 google.maps.event.addListener(marker, 'click', (function (marker) { 731 closeIW(); 732 var timeContent = ''; 733 734 var cols = 0; 735 736 if (typeof marker.dayone !== 'undefined' && typeof marker.timeone !== 'undefined' && marker.dayone && marker.timeone) { 737 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.dayone + '</div><div class="value">' + marker.timeone + '</div></div>'; 738 cols++; 739 } 740 741 if (typeof marker.daytwo !== 'undefined' && typeof marker.timetwo !== 'undefined' && marker.daytwo && marker.timetwo) { 742 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.daytwo + '</div><div class="value">' + marker.timetwo + '</div></div>'; 743 cols++; 744 } 745 746 if (typeof marker.daythree !== 'undefined' && typeof marker.timethree !== 'undefined' && marker.daythree && marker.timethree) { 747 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.daythree + '</div><div class="value">' + marker.timethree + '</div></div>'; 748 cols++; 749 } 750 751 if (typeof marker.dayfour !== 'undefined' && typeof marker.timefour !== 'undefined' && marker.dayfour && marker.timefour) { 752 timeContent += '<div class="boxiv timeblock"><div class="title">' + marker.dayfour + '</div><div class="value">' + marker.timefour + '</div></div>'; 753 cols++; 754 } 755 756 var cls = ''; 757 switch (cols) { 758 case 1: 759 cls = ' one-col'; 760 break; 761 case 2: 762 cls = ' two-col'; 763 break; 764 case 3: 765 cls = ' three-col'; 766 break; 767 case 4: 768 cls = ' four-col'; 769 break; 770 } 771 772 return function () { 773 marker.setIcon({ 774 url: ip.baseUrl + 'Plugin/SiteMaps/assets/img/marker-icon-black-mini-12.png', 775 size: new google.maps.Size(70, 96), 776 origin: new google.maps.Point(0, 0), 777 anchor: new google.maps.Point(25, 96) 778 } 779 ); 780 ib.setOptions(infoboxOptions); 781 boxText.innerHTML = '<div class="infowindow-container"><div class="title">' + marker.title + '</div><div class="phone">' + marker.phone + '</div><div class="worktime' + cls + '">' + timeContent + '</div></div>'; 782 ib.open(map, marker); 783 } 784 785 })(marker)); 786 787 markersLayer.push(marker); 788 789 } 790 return markersLayer;
791 } 792 793 function createMarkers() { 794 mgr = new MarkerManager(map); 795 google.maps.event.addListener(mgr, 'loaded', function () { 796 mgr.addMarkers(getCountryGroupMarkers(), 1, countryZoomMax); 797 mgr.addMarkers(getGroupsMarkers(groups), countryZoomMax + 1, 10); 798 mgr.addMarkers(getMarkers(groups), 11, 19); 799 mgr.refresh(); 800 }); 801 } 802 803 function removeFilterMarker(id) { 804 if (markers[id]) { 805 markers[id].setMap(null); 806 loc = markerList.indexOf(id); 807 if (loc > -1) markerList.splice(loc, 1); 808 delete markers[id]; 809 } 810 } 811 812 var filter = { 813 followers: 0, 814 college: 0, 815 from: 0 816 }; 817 818 var filterMap; 819 820 function reduceArray(a) { 821 r = a.shift().reduce(function (res, v) { 822 if (res.indexOf(v) === -1 && a.every(function (a) { 823 return a.indexOf(v) !== -1; 824 })) res.push(v); 825 return res; 826 }, []); 827 return r; 828 } 829 830 function isInt(n) { 831 return n % 1 === 0; 832 } 833 834 function filterAct(filterType, value) { 835 var results = []; 836 837 if (isInt(value)) { 838 filter[filterType] = parseInt(value); 839 } else { 840 filter[filterType] = value; 841 } 842 843 for (k in filter) { 844 if (!filter.hasOwnProperty(k) && !( filter[k] !== 0 )) { 845 getElements(); 846 return false; 847 } else if (filter[k] !== 0) { 848 results.push(filterMap[k](filter[k])); 849 } else { 850 } 851 } 852 853 if (filter[filterType] === 0) results.push(elements); 854 855 if (results.length === 1) { 856 results = results[0]; 857 } else { 858 results = reduceArray(results); 859 } 860 861 getElements(results); 862 863 } 864 865 filterMap = { 866 cityid: function (value) { 867 return filterByString('cityid', value); 868 } 869 }; 870 871 function filterByString(dataProperty, value) { 872 var element = []; 873 874 for (var i = 0; i < data.length; i++) { 875 var item = data[i]; 876 if (item[dataProperty] == value) { 877 element.push(item); 878 } else { 879 removeFilterMarker(item.id); 880 } 881 } 882 return element; 883 } 884 885 function filterIntsLessThan(dataProperty, value) { 886 var element = []; 887 888 for (var i = 0; i < data.length; i++) { 889 var item = data[i]; 890 if (item[dataProperty] > value) { 891 element.push(item) 892 } else { 893 removeFilterMarker(item.id); 894 } 895 } 896 return element; 897 } 898 899 function filterReset() { 900 filter = { 901 cityid: 0 902 } 903 } 904 905 return { 906 init: init, 907 moveMap: moveMap, 908 getElements: getElements, 909 filterAct: filterAct, 910 filterReset: filterReset, 911 extMapCenter: extMapCenter, 912 closeIW: closeIW, 913 showCountriesOnMap:showCountriesOnMap, 914 mapResetToCountries: mapResetToCountries, 915 mapResetToGroupByCountry: mapResetToGroupByCountry 916 }; 917}(); 918 919$(function () { 920 /* 921 $(".map-container").each(function (index) { 922 var $this = $(this); 923 924 var data = {}; 925 data.lat = $this.data('lat'); 926 data.lon = $this.data('lon'); 927 data.iden = $this.data('mapiden'); 928 data.mapType = $this.data('maptype'); 929 data.mapWidth = $this.data('mapwidth'); 930 data.mapHeight = $this.data('mapheight'); 931 data.mapZoom = $this.data('mapzoom'); 932 data.mapIcon = $this.data('mapicon'); 933 data.mapZoomControl = $this.data('mapzoomcontrol'); 934 data.mapScrollWheel = $this.data('mapscrollwheel'); 935 data.markersgm = $this.data('markersgm'); 936 data.showall = $this.data('showall'); 937 938 var mapConfig = { 939 idSelector: 'map-container-' + data.iden, 940 mapdata: data, 941 markerLocation: ip.baseUrl + 'Plugin/SiteMaps/assets/img/item-icon-inactive.png' 942 }; 943 944 $(".map-block-container").height($(window).height() - 214); 945 siteMaps.init(mapConfig); 946 947 }); 948 */ 949 // 950 951 function resetActivity(gid) { 952 $('.filter-group-' + gid).removeClass('filter-active'); 953 } 954 955 $('.filter-button-act').on('click touchstart', function (e) { 956 var $this = $(this); 957 958 e.preventDefault(); 959 960 if ($this.hasClass('filter-country')) { 961 var cityId = $this.attr('data-cid'); 962 siteMaps.mapResetToGroupByCountry(cityId); 963 $this.addClass('filter-active').siblings().removeClass('filter-active'); 964 } else { 965 var filter = $(this).data('filter'); 966 var gid = $(this).data('gid'); 967 var movelat = $(this).data('lat'); 968 var movelon = $(this).data('lon'); 969 //siteMaps.filterAct('cityid', filter); 970 //siteMaps.moveMap(movelat,movelon, false, 10); 971 siteMaps.extMapCenter(filter); 972 siteMaps.closeIW(); 973 resetActivity(gid); 974 $this.addClass('filter-active'); 975 } 976 }); 977 978 $('.reset-btn').on('click touchstart', function (e) { 979 var $this = $(this); 980 981 e.preventDefault(); 982 983 if ($this.hasClass('filter-country')) { 984 siteMaps.mapResetToCountries(); 985 $this.addClass('filter-active').siblings().removeClass('filter-active'); 986 } else { 987 // group 988 var gid = $(this).data('gid'); 989 var movelat = $(this).data('lat'); 990 var movelon = $(this).data('lon'); 991 //siteMaps.filterReset(); 992 //siteMaps.moveMap(movelat, movelon, true, 7); 993 siteMaps.showCountriesOnMap(); 994 //siteMaps.getElements(); 995 siteMaps.closeIW(); 996 resetActivity(gid); 997 $this.addClass('filter-active'); 998 } 999 }); 1000 1001 /* For future use 1002 DropDown filter 1003 $('.select-class').on('change', function() { 1004 siteMaps.filterAct('filtername', value); 1005 }); 1006 */ 1007 1008});
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.