1function RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark) { 2 arShopsItem.each(function(){ 3 if($(this).hasClass('cityempty') || $(this).hasClass('typeempty')){ 4 rsPlacemark[$(this).data('id')].options.set('visible', false); 5 } else { 6 rsPlacemark[$(this).data('id')].options.set('visible', true); 7 } 8 }); 9} 10 11$(document).ready(function(){ 12 13 var arShopsItem = $('.shops_list').find('.item'), 14 arMapCoord = [0, 0], 15 rsPlacemark = {}, 16 rsYMapShops; 17 18 arShopsItem.each(function(){ 19 var arCoords = $(this).data('coords').split(','); 20 arMapCoord[0] = arMapCoord[0] + parseFloat(arCoords[0]); 21 arMapCoord[1] = arMapCoord[1] + parseFloat(arCoords[1]); 22 }); 23 arMapCoord[0] = arMapCoord[0] / arShopsItem.length; 24 arMapCoord[1] = arMapCoord[1] / arShopsItem.length; 25 var rsPlacemark = {}, rsYMapShops; 26 ymaps.ready(function(){ 27 rsYMapShops = new ymaps.Map('rsYMapShops', { 28 center: arMapCoord, 29 zoom: 16, 30 type:'yandex#publicMap', 31 behaviors: ['default', 'scrollZoom'] 32 }); 33 arShopsItem.each(function(){ 34 var arCoords = $(this).data('coords').split(','), 35 id = $(this).data('id'); 36 arCoords[0] = parseFloat(arCoords[0]); 37 arCoords[1] = parseFloat(arCoords[1]); 38 rsPlacemark[id] = new ymaps.Placemark( 39 arCoords, { 40 balloonContentHeader: $(this).find('name').html(), 41 balloonContentBody: $(this).find('.descr').html() 42 } 43 ); 44 rsYMapShops.geoObjects.add(rsPlacemark[id]); 45 }); 46 rsYMapShops.setBounds(rsYMapShops.geoObjects.getBounds(), {checkZoomRange: true}).controls.add('mapTools').add('zoomControl').add('typeSelector'); 47 }); 48 49 arShopsItem.on('mouseenter', function(){ 50 rsPlacemark[$(this).data('id')].options.set('preset', 'twirl#redDotIcon'); 51 }).on('mouseleave', function(){ 52 rsPlacemark[$(this).data('id')].options.set('preset', 'twirl#blueIcon'); 53 }); 54 55 // city search 56 $(document).on('keyup','.search_city input',function(){ 57 var $inputObj = $(this); 58 var $citiesList = $inputObj.parents('.search_city').find('.cities_list'); 59 var value = $inputObj.val(); 60 var len = 0; 61 62 if(value.length<1) { 63 $citiesList.css('display','none'); 64 } else { 65 $citiesList.css('display','block'); 66 len = 0; 67 $citiesList.find('a').each(function(){ 68 var a_value = $(this).html().substr(0,value.length); 69 if( value.toLowerCase()==a_value.toLowerCase() ) { 70 $(this).parent().css('display','block'); 71 len++; 72 } else { 73 $(this).parent().css('display','none'); 74 } 75 }); 76 if( len<1 ) { 77 $citiesList.css('display','none'); 78 } 79 } 80 }); 81 $(document).on('blur','.search_city input',function(){ 82 var value = $(this).val(); 83 if(value.length<1) { 84 $('.shops_list').find('li').removeClass('cityempty'); 85 } else { 86 $('.search_city input').trigger('keyup'); 87 } 88 RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark); 89 }); 90 $(document).on('click','.cities_list a',function(){ 91 var cityFilter = $(this).data('filter'); 92 $('.search_city input').val( $(this).html() ); 93 $('.cities_list').css('display','none'); 94 $('.shops_list').find('li').addClass('cityempty'); 95 $('.shops_list').find('li[data-city="'+cityFilter+'"]').removeClass('cityempty'); 96 RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark); 97 return false; 98 }); 99 100 // filter 101 $(document).on('click','.shops .filter .btn',function(){ 102 $('.shops .filter').find('.btn').removeClass('btn-primary').addClass('btn-default'); 103 $(this).addClass('btn-primary').removeClass('btn-default'); 104 var typeFilter = $(this).data('filter'); 105 if(typeFilter.length>0) { 106 $('.shops_list').find('li').addClass('typeempty'); 107 $('.shops_list').find('li[data-type="'+typeFilter+'"]').removeClass('typeempty'); 108 } else { 109 $('.shops_list').find('li').removeClass('typeempty'); 110 } 111 RSMonopolyDrawPlacemark(arShopsItem,rsPlacemark); 112 }); 113 114});
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.