Commits

beholder committed 9d468d7

Fix missing semicolons after methods which brokes minified versions.

Comments (0)

Files changed (3)

yandex.clusterer.js

 /**
  * @name YandexClusterer for Yandex Maps.
- * @version 1.1.0 [March 02, 2012]
+ * @version 1.1.1 [March 02, 2012]
  * @author Alexander Shabunevich [http://aether.ru]
  * http://beholder.bitbucket.org/yandex.clusterer/
  *
  */
 YandexClusterer.prototype.setMarkers = function(markers) {
   this.markers = markers;
-}
+};
 
 /**
  * Remove all markers from map (clusters and single placemarks).
     this.clusters[l].remove();
   }
   this.clusters = [];
-}
+};
 
 /**
  * Removes all markers and recalculate clusters.
 YandexClusterer.prototype.repaint = function() {
   this.clearMarkers();
   this.redraw();
-}
+};
 
 /**
  * Recalculate clusters. Markers not removed.
  */
 YandexClusterer.prototype.redraw = function() {
   this.createClusters(0);
-}
+};
 
 /**
  * Create clusters for markers. Working in several iterations.
       self.updateClusterIcons();
     }, 0);
   }
-}
+};
 
 /**
  * Extends map bounds for grid size.
   sw = converter.mapPixelsToCoordinates(lbPix);
 
   return new YMaps.GeoBounds(sw, ne);
-}
+};
 
 /**
  * Add marker to cluster (new or closest).
     cluster.addMarker(marker);
     this.clusters.push(cluster);
   }
-}
+};
 
 /**
  * Calculates distance between points.
 
     cluster.showIcon(); // draw cluster icon
   }
-}
+};
 
 /**
  * Returns max zoom for map.
  */
 YandexClusterer.prototype.getStylesCount = function() {
   return this.imageSizes_.length;
-}
+};
 
 /**
  * The default root name for the marker cluster images.
   this.markers_bounds.add(marker.getGeoPoint());
 
   return true;
-}
+};
 
 YandexCluster.prototype.getClusterBounds = function() {
   return this.markers_bounds;
  */
 YandexCluster.prototype.isMarkerInBounds = function(marker) {
   return this.bounds.contains(marker.getCoordPoint());
-}
+};
 
 /**
  * Draw icon for cluster.
 
   var zoom = this.map.getZoom();
   this.yandexObjectManager.add(this.point, zoom, zoom);
-}
+};
 
 /**
  * Remove cluster from map.

yandex.clusterer.min.js

 /**
  * @name YandexClusterer for Yandex Maps.
- * @version 1.1.0 [March 02, 2012]
+ * @version 1.1.1 [March 02, 2012]
  * @author Alexander Shabunevich [http://aether.ru]
  * http://beholder.bitbucket.org/yandex.clusterer/
  *
  * Based on MarkerClustererPlus for Google Maps V3 by Gary Little
  */
-function YandexClusterer(map,markers,opts){this.map=map;this.bounds=null;this.clusters=[];this.markers=markers||[];this.zoom=null;this.map.YandexClusterer=this;this.yandexObjectManager=new YMaps.ObjectManager();this.map.addOverlay(this.yandexObjectManager);opts=opts||{};this.max_zoom=opts.max_zoom||0;this.grid=opts.grid||60;this.min_size=opts.min_size||2;this.centered=opts.centered||false;this.batch=opts.batch||400;this.imagePath_=opts.imagePath||YandexClusterer.IMAGE_PATH;this.imageExtension_=opts.imageExtension||YandexClusterer.IMAGE_EXTENSION;this.imageSizes_=opts.imageSizes||YandexClusterer.IMAGE_SIZES;this.styles=opts.styles||this.generateClusterStyles();this.printable=opts.printable||false;if(this.map._yandexClustererEvents){for(event in this.map._yandexClustererEvents){this.map._yandexClustererEvents[event].cleanup()}}this.map._yandexClustererEvents={};this.map._yandexClustererEvents['update']=YMaps.Events.observe(this.map,this.map.Events.Update,function(){this.repaint()},this);this.map._yandexClustererEvents['move']=YMaps.Events.observe(this.map,this.map.Events.MoveEnd,function(){this.redraw()},this);this.repaint()}YandexClusterer.prototype.setMarkers=function(markers){this.markers=markers}YandexClusterer.prototype.clearMarkers=function(){var l=this.markers.length;while(l--){var marker=this.markers[l];this.map.removeOverlay(marker);marker.isAdded=false;if(marker.isOnMap){marker.isOnMap=false}}this.yandexObjectManager.removeAll();l=this.clusters.length;while(l--){this.clusters[l].remove()}this.clusters=[]}YandexClusterer.prototype.repaint=function(){this.clearMarkers();this.redraw()}YandexClusterer.prototype.redraw=function(){this.createClusters(0)}YandexClusterer.prototype.createClusters=function(iter){var self=this;var i=iter;var length=this.markers.length;var iter_last=Math.min(iter+this.batch,length);if(iter===0){this.bounds=this.extendBounds(this.map.getBounds());this.zoom=this.map.getZoom();if(typeof this.timerRefStatic!=="undefined"){clearTimeout(this.timerRefStatic);delete this.timerRefStatic}}for(;i<iter_last;i++){var marker=this.markers[i];if(!marker.isAdded&&this.bounds.contains(marker.getCoordPoint())){this.addToCluster(marker)}}if(iter_last<length){this.timerRefStatic=setTimeout(function(){self.createClusters(iter_last)},0)}else{delete this.timerRefStatic;setTimeout(function(){self.updateClusterIcons()},0)}}YandexClusterer.prototype.extendBounds=function(bounds){var converter=this.map.converter,rtPix,lbPix,ne,sw;rtPix=converter.coordinatesToMapPixels(bounds.getRightTop());rtPix.x+=this.grid;rtPix.y-=this.grid;lbPix=converter.coordinatesToMapPixels(bounds.getLeftBottom());lbPix.x-=this.grid;lbPix.y+=this.grid;ne=converter.mapPixelsToCoordinates(rtPix);sw=converter.mapPixelsToCoordinates(lbPix);return new YMaps.GeoBounds(sw,ne)}YandexClusterer.prototype.addToCluster=function(marker){var d,cluster,center,l=this.clusters.length;var distance=40000;var clusterToAddTo=null;while(l--){cluster=this.clusters[l];if(cluster.center){d=this.distanceBetween(cluster.center,marker.getCoordPoint());if(d<distance){distance=d;clusterToAddTo=cluster}}}if(clusterToAddTo&&clusterToAddTo.isMarkerInBounds(marker)){clusterToAddTo.addMarker(marker)}else{cluster=new YandexCluster(this);cluster.addMarker(marker);this.clusters.push(cluster)}}YandexClusterer.prototype.distanceBetween=function(p1,p2){return p1.distance(p2)/1000};YandexClusterer.prototype.updateClusterIcons=function(){var self=this,l=this.clusters.length,max_zoom=this.getMaxZoom(),max_map_zoom=this.map.getZoom();while(l--){var cluster=this.clusters[l];count=cluster.markers.length;if(max_map_zoom>=max_zoom){var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];if(!marker.isOnMap){this.yandexObjectManager.add(marker,this.zoom,this.zoom);marker.isOnMap=true}}continue}else if(count<this.min_size){var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];if(!marker.isOnMap){this.yandexObjectManager.add(marker,this.zoom,this.zoom);marker.isOnMap=true}}continue}else{var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];this.map.removeOverlay(marker);marker.isOnMap=false}}cluster.showIcon()}}YandexClusterer.prototype.getMaxZoom=function(){return this.max_zoom||this.map.getMaxZoom()};YandexClusterer.prototype.getClusterStyle=function(cluster){return this.styles[cluster.getIconStyleIndex(this.getStylesCount())]};YandexClusterer.prototype.generateClusterStyles=function(){var styles=[];for(var i=0;i<this.getStylesCount();i++){styles.push(this.genStyleForIndex(i))}return styles};YandexClusterer.prototype.genStyleForIndex=function(index){var size=this.imageSizes_[index];var iconPath=this.imagePath_+(index+1)+this.imageExtension_;var style={icon:iconPath,height:size,width:size,offset:[-parseInt(size/2,10),-parseInt(size/2,10)],textColor:'#000000',textSize:11};return style};YandexClusterer.prototype.getStylesCount=function(){return this.imageSizes_.length}YandexClusterer.IMAGE_PATH="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclustererplus/images/m";YandexClusterer.IMAGE_EXTENSION=".png";YandexClusterer.IMAGE_SIZES=[53,56,66,78,90];function YandexCluster(clusterOwner){this.clustererObject=clusterOwner;this.yandexObjectManager=clusterOwner.yandexObjectManager;this.map=clusterOwner.map;this.center=null;this.markers=[];this.markers_bounds=new YMaps.GeoCollectionBounds();this.bounds=null;this.min_size=clusterOwner.min_size;this.point=null}YandexCluster.prototype.addMarker=function(marker){var count,i,zoom=this.map.getZoom();if(marker.isAdded)return false;if(!this.center){this.center=marker.getCoordPoint();this.bounds=this.calculateBounds()}else if(this.clustererObject.centered){var l=this.markers.length+1,m_coord=marker.getCoordPoint();var lat=(this.center.getLat()*(l-1)+m_coord.getLat())/l;var lng=(this.center.getLng()*(l-1)+m_coord.getLng())/l;this.center=new YMaps.GeoPoint(lng,lat);this.bounds=this.calculateBounds()}marker.isAdded=true;this.markers.push(marker);this.markers_bounds.add(marker.getGeoPoint());return true}YandexCluster.prototype.getClusterBounds=function(){return this.markers_bounds};YandexCluster.prototype.calculateBounds=function(){var bounds=new YMaps.GeoCollectionBounds(this.center);return this.clustererObject.extendBounds(bounds)};YandexCluster.prototype.isMarkerInBounds=function(marker){return this.bounds.contains(marker.getCoordPoint())}YandexCluster.prototype.showIcon=function(){var self=this,position=new YMaps.GeoPoint(this.center.getLng(),this.center.getLat());if(this.point){this.yandexObjectManager.remove(this.point)}if(this.clustererObject.printable){var template=new YMaps.Template('<div style="cursor:pointer;position:relative;line-height:$[style.iconStyle.size.y]px;height:$[style.iconStyle.size.y]px;width:$[style.iconStyle.size.x]px;text-align:center"><img src="$[style.iconStyle.href]" alt="" style="position:absolute;left:0;top:0"><span style="position:relative;font-weight:bold;font-size:$[textSize|12]px;color:$[textColor|#000]">$[markersCount|0]</span></div>')}else{var template=new YMaps.Template('<div style="cursor:pointer;position:relative;line-height:$[style.iconStyle.size.y]px;height:$[style.iconStyle.size.y]px;width:$[style.iconStyle.size.x]px;text-align:center;background:url($[style.iconStyle.href]) no-repeat;font-weight:bold;font-size:$[textSize|12]px;color:$[textColor|#000]">$[markersCount|0]</div>')}var clusterStyle=this.clustererObject.getClusterStyle(this);var style=new YMaps.Style();style.iconStyle=new YMaps.IconStyle(template);style.iconStyle.href=clusterStyle.icon;style.iconStyle.size=new YMaps.Point(clusterStyle.width,clusterStyle.height);style.iconStyle.offset=new YMaps.Point(clusterStyle.offset[0],clusterStyle.offset[1]);this.point=new YMaps.Placemark(position,{style:style,hasBalloon:false});this.point.markersCount=this.markers.length;this.point.textSize=clusterStyle.textSize;this.point.textColor=clusterStyle.textColor;YMaps.Events.observe(this.point,this.point.Events.Click,function(){this.map.setBounds(this.getClusterBounds());if(this.clustererObject.getMaxZoom()<this.map.getZoom()){this.map.setZoom(this.clustererObject.getMaxZoom()+1)}},this);var zoom=this.map.getZoom();this.yandexObjectManager.add(this.point,zoom,zoom)}YandexCluster.prototype.remove=function(){this.markers=[];this.markers_bounds.clear();if(this.point){this.point=null}};YandexCluster.prototype.getIconStyleIndex=function(styles_num){var index=-1;var count=this.markers.length.toString();var dv=count;while(dv!==0){dv=parseInt(dv/10,10);index++}index=Math.min(index,styles_num-1);return index};
+function YandexClusterer(map,markers,opts){this.map=map;this.bounds=null;this.clusters=[];this.markers=markers||[];this.zoom=null;this.map.YandexClusterer=this;this.yandexObjectManager=new YMaps.ObjectManager();this.map.addOverlay(this.yandexObjectManager);opts=opts||{};this.max_zoom=opts.max_zoom||0;this.grid=opts.grid||60;this.min_size=opts.min_size||2;this.centered=opts.centered||false;this.batch=opts.batch||400;this.imagePath_=opts.imagePath||YandexClusterer.IMAGE_PATH;this.imageExtension_=opts.imageExtension||YandexClusterer.IMAGE_EXTENSION;this.imageSizes_=opts.imageSizes||YandexClusterer.IMAGE_SIZES;this.styles=opts.styles||this.generateClusterStyles();this.printable=opts.printable||false;if(this.map._yandexClustererEvents){for(event in this.map._yandexClustererEvents){this.map._yandexClustererEvents[event].cleanup()}}this.map._yandexClustererEvents={};this.map._yandexClustererEvents['update']=YMaps.Events.observe(this.map,this.map.Events.Update,function(){this.repaint()},this);this.map._yandexClustererEvents['move']=YMaps.Events.observe(this.map,this.map.Events.MoveEnd,function(){this.redraw()},this);this.repaint()}YandexClusterer.prototype.setMarkers=function(markers){this.markers=markers};YandexClusterer.prototype.clearMarkers=function(){var l=this.markers.length;while(l--){var marker=this.markers[l];this.map.removeOverlay(marker);marker.isAdded=false;if(marker.isOnMap){marker.isOnMap=false}}this.yandexObjectManager.removeAll();l=this.clusters.length;while(l--){this.clusters[l].remove()}this.clusters=[]};YandexClusterer.prototype.repaint=function(){this.clearMarkers();this.redraw()};YandexClusterer.prototype.redraw=function(){this.createClusters(0)};YandexClusterer.prototype.createClusters=function(iter){var self=this;var i=iter;var length=this.markers.length;var iter_last=Math.min(iter+this.batch,length);if(iter===0){this.bounds=this.extendBounds(this.map.getBounds());this.zoom=this.map.getZoom();if(typeof this.timerRefStatic!=="undefined"){clearTimeout(this.timerRefStatic);delete this.timerRefStatic}}for(;i<iter_last;i++){var marker=this.markers[i];if(!marker.isAdded&&this.bounds.contains(marker.getCoordPoint())){this.addToCluster(marker)}}if(iter_last<length){this.timerRefStatic=setTimeout(function(){self.createClusters(iter_last)},0)}else{delete this.timerRefStatic;setTimeout(function(){self.updateClusterIcons()},0)}};YandexClusterer.prototype.extendBounds=function(bounds){var converter=this.map.converter,rtPix,lbPix,ne,sw;rtPix=converter.coordinatesToMapPixels(bounds.getRightTop());rtPix.x+=this.grid;rtPix.y-=this.grid;lbPix=converter.coordinatesToMapPixels(bounds.getLeftBottom());lbPix.x-=this.grid;lbPix.y+=this.grid;ne=converter.mapPixelsToCoordinates(rtPix);sw=converter.mapPixelsToCoordinates(lbPix);return new YMaps.GeoBounds(sw,ne)};YandexClusterer.prototype.addToCluster=function(marker){var d,cluster,center,l=this.clusters.length;var distance=40000;var clusterToAddTo=null;while(l--){cluster=this.clusters[l];if(cluster.center){d=this.distanceBetween(cluster.center,marker.getCoordPoint());if(d<distance){distance=d;clusterToAddTo=cluster}}}if(clusterToAddTo&&clusterToAddTo.isMarkerInBounds(marker)){clusterToAddTo.addMarker(marker)}else{cluster=new YandexCluster(this);cluster.addMarker(marker);this.clusters.push(cluster)}};YandexClusterer.prototype.distanceBetween=function(p1,p2){return p1.distance(p2)/1000};YandexClusterer.prototype.updateClusterIcons=function(){var self=this,l=this.clusters.length,max_zoom=this.getMaxZoom(),max_map_zoom=this.map.getZoom();while(l--){var cluster=this.clusters[l];count=cluster.markers.length;if(max_map_zoom>=max_zoom){var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];if(!marker.isOnMap){this.yandexObjectManager.add(marker,this.zoom,this.zoom);marker.isOnMap=true}}continue}else if(count<this.min_size){var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];if(!marker.isOnMap){this.yandexObjectManager.add(marker,this.zoom,this.zoom);marker.isOnMap=true}}continue}else{var i=cluster.markers.length;while(i--){var marker=cluster.markers[i];this.map.removeOverlay(marker);marker.isOnMap=false}}cluster.showIcon()}};YandexClusterer.prototype.getMaxZoom=function(){return this.max_zoom||this.map.getMaxZoom()};YandexClusterer.prototype.getClusterStyle=function(cluster){return this.styles[cluster.getIconStyleIndex(this.getStylesCount())]};YandexClusterer.prototype.generateClusterStyles=function(){var styles=[];for(var i=0;i<this.getStylesCount();i++){styles.push(this.genStyleForIndex(i))}return styles};YandexClusterer.prototype.genStyleForIndex=function(index){var size=this.imageSizes_[index];var iconPath=this.imagePath_+(index+1)+this.imageExtension_;var style={icon:iconPath,height:size,width:size,offset:[-parseInt(size/2,10),-parseInt(size/2,10)],textColor:'#000000',textSize:11};return style};YandexClusterer.prototype.getStylesCount=function(){return this.imageSizes_.length};YandexClusterer.IMAGE_PATH="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclustererplus/images/m";YandexClusterer.IMAGE_EXTENSION=".png";YandexClusterer.IMAGE_SIZES=[53,56,66,78,90];function YandexCluster(clusterOwner){this.clustererObject=clusterOwner;this.yandexObjectManager=clusterOwner.yandexObjectManager;this.map=clusterOwner.map;this.center=null;this.markers=[];this.markers_bounds=new YMaps.GeoCollectionBounds();this.bounds=null;this.min_size=clusterOwner.min_size;this.point=null}YandexCluster.prototype.addMarker=function(marker){var count,i,zoom=this.map.getZoom();if(marker.isAdded)return false;if(!this.center){this.center=marker.getCoordPoint();this.bounds=this.calculateBounds()}else if(this.clustererObject.centered){var l=this.markers.length+1,m_coord=marker.getCoordPoint();var lat=(this.center.getLat()*(l-1)+m_coord.getLat())/l;var lng=(this.center.getLng()*(l-1)+m_coord.getLng())/l;this.center=new YMaps.GeoPoint(lng,lat);this.bounds=this.calculateBounds()}marker.isAdded=true;this.markers.push(marker);this.markers_bounds.add(marker.getGeoPoint());return true};YandexCluster.prototype.getClusterBounds=function(){return this.markers_bounds};YandexCluster.prototype.calculateBounds=function(){var bounds=new YMaps.GeoCollectionBounds(this.center);return this.clustererObject.extendBounds(bounds)};YandexCluster.prototype.isMarkerInBounds=function(marker){return this.bounds.contains(marker.getCoordPoint())};YandexCluster.prototype.showIcon=function(){var self=this,position=new YMaps.GeoPoint(this.center.getLng(),this.center.getLat());if(this.point){this.yandexObjectManager.remove(this.point)}if(this.clustererObject.printable){var template=new YMaps.Template('<div style="cursor:pointer;position:relative;line-height:$[style.iconStyle.size.y]px;height:$[style.iconStyle.size.y]px;width:$[style.iconStyle.size.x]px;text-align:center"><img src="$[style.iconStyle.href]" alt="" style="position:absolute;left:0;top:0"><span style="position:relative;font-weight:bold;font-size:$[textSize|12]px;color:$[textColor|#000]">$[markersCount|0]</span></div>')}else{var template=new YMaps.Template('<div style="cursor:pointer;position:relative;line-height:$[style.iconStyle.size.y]px;height:$[style.iconStyle.size.y]px;width:$[style.iconStyle.size.x]px;text-align:center;background:url($[style.iconStyle.href]) no-repeat;font-weight:bold;font-size:$[textSize|12]px;color:$[textColor|#000]">$[markersCount|0]</div>')}var clusterStyle=this.clustererObject.getClusterStyle(this);var style=new YMaps.Style();style.iconStyle=new YMaps.IconStyle(template);style.iconStyle.href=clusterStyle.icon;style.iconStyle.size=new YMaps.Point(clusterStyle.width,clusterStyle.height);style.iconStyle.offset=new YMaps.Point(clusterStyle.offset[0],clusterStyle.offset[1]);this.point=new YMaps.Placemark(position,{style:style,hasBalloon:false});this.point.markersCount=this.markers.length;this.point.textSize=clusterStyle.textSize;this.point.textColor=clusterStyle.textColor;YMaps.Events.observe(this.point,this.point.Events.Click,function(){this.map.setBounds(this.getClusterBounds());if(this.clustererObject.getMaxZoom()<this.map.getZoom()){this.map.setZoom(this.clustererObject.getMaxZoom()+1)}},this);var zoom=this.map.getZoom();this.yandexObjectManager.add(this.point,zoom,zoom)};YandexCluster.prototype.remove=function(){this.markers=[];this.markers_bounds.clear();if(this.point){this.point=null}};YandexCluster.prototype.getIconStyleIndex=function(styles_num){var index=-1;var count=this.markers.length.toString();var dv=count;while(dv!==0){dv=parseInt(dv/10,10);index++}index=Math.min(index,styles_num-1);return index};

yandex.clusterer.packed.js

-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 7(a,b,c){3.6=a;3.A=B;3.r=[];3.f=b||[];3.C=B;3.6.7=3;3.s=h g.2d();3.6.2e(3.s);c=c||{};3.M=c.M||0;3.G=c.G||2f;3.N=c.N||2;3.17=c.17||D;3.18=c.18||2g;3.1w=c.2h||7.1x;3.1y=c.2i||7.1z;3.19=c.2j||7.1A;3.1a=c.1a||3.1B();3.1b=c.1b||D;9(3.6.H){1c(1C 2k 3.6.H){3.6.H[1C].2l()}}3.6.H={};3.6.H[\'2m\']=g.I.1d(3.6,3.6.I.2n,5(){3.1e()},3);3.6.H[\'2o\']=g.I.1d(3.6,3.6.I.2p,5(){3.1f()},3);3.1e()}7.8.2q=5(a){3.f=a}7.8.1D=5(){4 l=3.f.k;v(l--){4 a=3.f[l];3.6.1E(a);a.W=D;9(a.E){a.E=D}}3.s.2r();l=3.r.k;v(l--){3.r[l].1g()}3.r=[]}7.8.1e=5(){3.1D();3.1f()}7.8.1f=5(){3.1h(0)}7.8.1h=5(a){4 b=3;4 i=a;4 c=3.f.k;4 d=1F.1G(a+3.18,c);9(a===0){3.A=3.1i(3.6.2s());3.C=3.6.O();9(2t 3.P!=="2u"){2v(3.P);1H 3.P}}1c(;i<d;i++){4 e=3.f[i];9(!e.W&&3.A.1I(e.Q())){3.1J(e)}}9(d<c){3.P=1K(5(){b.1h(d)},0)}J{1H 3.P;1K(5(){b.1L()},0)}}7.8.1i=5(a){4 b=3.6.2w,R,S,1j,1k;R=b.1M(a.2x());R.x+=3.G;R.y-=3.G;S=b.1M(a.2y());S.x-=3.G;S.y+=3.G;1j=b.1N(R);1k=b.1N(S);n h g.2z(1k,1j)}7.8.1J=5(a){4 d,w,j,l=3.r.k;4 b=2A;4 c=B;v(l--){w=3.r[l];9(w.j){d=3.1O(w.j,a.Q());9(d<b){b=d;c=w}}}9(c&&c.1P(a)){c.1l(a)}J{w=h t(3);w.1l(a);3.r.1m(w)}}7.8.1O=5(a,b){n a.2B(b)/2C};7.8.1L=5(){4 a=3,l=3.r.k,M=3.T(),1Q=3.6.O();v(l--){4 b=3.r[l];1R=b.f.k;9(1Q>=M){4 i=b.f.k;v(i--){4 c=b.f[i];9(!c.E){3.s.X(c,3.C,3.C);c.E=Y}}1S}J 9(1R<3.N){4 i=b.f.k;v(i--){4 c=b.f[i];9(!c.E){3.s.X(c,3.C,3.C);c.E=Y}}1S}J{4 i=b.f.k;v(i--){4 c=b.f[i];3.6.1E(c);c.E=D}}b.1T()}}7.8.T=5(){n 3.M||3.6.T()};7.8.1U=5(a){n 3.1a[a.1V(3.1n())]};7.8.1B=5(){4 a=[];1c(4 i=0;i<3.1n();i++){a.1m(3.1W(i))}n a};7.8.1W=5(a){4 b=3.19[a];4 c=3.1w+(a+1)+3.1y;4 d={1X:c,K:b,Z:b,13:[-1o(b/2,10),-1o(b/2,10)],U:\'#2D\',V:11};n d};7.8.1n=5(){n 3.19.k}7.1x="2E://2F-2G-2H-2I-2J.2K.2L/2M/2N/2O/2P/m";7.1z=".2Q";7.1A=[2R,2S,2T,2U,2V];5 t(a){3.F=a;3.s=a.s;3.6=a.6;3.j=B;3.f=[];3.14=h g.1Y();3.A=B;3.N=a.N;3.p=B}t.8.1l=5(a){4 b,i,C=3.6.O();9(a.W)n D;9(!3.j){3.j=a.Q();3.A=3.1p()}J 9(3.F.17){4 l=3.f.k+1,1q=a.Q();4 c=(3.j.1r()*(l-1)+1q.1r())/l;4 d=(3.j.1s()*(l-1)+1q.1s())/l;3.j=h g.1Z(d,c);3.A=3.1p()}a.W=Y;3.f.1m(a);3.14.X(a.2W());n Y}t.8.20=5(){n 3.14};t.8.1p=5(){4 a=h g.1Y(3.j);n 3.F.1i(a)};t.8.1P=5(a){n 3.A.1I(a.Q())}t.8.1T=5(){4 a=3,L=h g.1Z(3.j.1s(),3.j.1r());9(3.p){3.s.1g(3.p)}9(3.F.1b){4 b=h g.21(\'<15 o="22:23;L:1t;24-K:$[o.q.u.y]z;K:$[o.q.u.y]z;Z:$[o.q.u.x]z;25-26:j"><2X 2Y="$[o.q.1u]" 2Z="" o="L:30;31:0;32:0"><27 o="L:1t;16-28:29;16-u:$[V|12]z;2a:$[U|#2b]">$[1v|0]</27></15>\')}J{4 b=h g.21(\'<15 o="22:23;L:1t;24-K:$[o.q.u.y]z;K:$[o.q.u.y]z;Z:$[o.q.u.x]z;25-26:j;33:34($[o.q.1u]) 35-36;16-28:29;16-u:$[V|12]z;2a:$[U|#2b]">$[1v|0]</15>\')}4 c=3.F.1U(3);4 d=h g.37();d.q=h g.38(b);d.q.1u=c.1X;d.q.u=h g.2c(c.Z,c.K);d.q.13=h g.2c(c.13[0],c.13[1]);3.p=h g.39(L,{o:d,3a:D});3.p.1v=3.f.k;3.p.V=c.V;3.p.U=c.U;g.I.1d(3.p,3.p.I.3b,5(){3.6.3c(3.20());9(3.F.T()<3.6.O()){3.6.3d(3.F.T()+1)}},3);4 e=3.6.O();3.s.X(3.p,e,e)}t.8.1g=5(){3.f=[];3.14.3e();9(3.p){3.p=B}};t.8.1V=5(a){4 b=-1;4 c=3.f.k.3f();4 d=c;v(d!==0){d=1o(d/10,10);b++}b=1F.1G(b,a-1);n b};',62,202,'|||this|var|function|map|YandexClusterer|prototype|if||||||markers|YMaps|new||center|length|||return|style|point|iconStyle|clusters|yandexObjectManager|YandexCluster|size|while|cluster|||px|bounds|null|zoom|false|isOnMap|clustererObject|grid|_yandexClustererEvents|Events|else|height|position|max_zoom|min_size|getZoom|timerRefStatic|getCoordPoint|rtPix|lbPix|getMaxZoom|textColor|textSize|isAdded|add|true|width||||offset|markers_bounds|div|font|centered|batch|imageSizes_|styles|printable|for|observe|repaint|redraw|remove|createClusters|extendBounds|ne|sw|addMarker|push|getStylesCount|parseInt|calculateBounds|m_coord|getLat|getLng|relative|href|markersCount|imagePath_|IMAGE_PATH|imageExtension_|IMAGE_EXTENSION|IMAGE_SIZES|generateClusterStyles|event|clearMarkers|removeOverlay|Math|min|delete|contains|addToCluster|setTimeout|updateClusterIcons|coordinatesToMapPixels|mapPixelsToCoordinates|distanceBetween|isMarkerInBounds|max_map_zoom|count|continue|showIcon|getClusterStyle|getIconStyleIndex|genStyleForIndex|icon|GeoCollectionBounds|GeoPoint|getClusterBounds|Template|cursor|pointer|line|text|align|span|weight|bold|color|000|Point|ObjectManager|addOverlay|60|400|imagePath|imageExtension|imageSizes|in|cleanup|update|Update|move|MoveEnd|setMarkers|removeAll|getBounds|typeof|undefined|clearTimeout|converter|getRightTop|getLeftBottom|GeoBounds|40000|distance|1000|000000|http|google|maps|utility|library|v3|googlecode|com|svn|trunk|markerclustererplus|images|png|53|56|66|78|90|getGeoPoint|img|src|alt|absolute|left|top|background|url|no|repeat|Style|IconStyle|Placemark|hasBalloon|Click|setBounds|setZoom|clear|toString'.split('|'),0,{}))
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 7(a,b,c){3.6=a;3.A=F;3.r=[];3.f=b||[];3.E=F;3.6.7=3;3.t=h g.2d();3.6.2t(3.t);c=c||{};3.M=c.M||0;3.G=c.G||2l;3.Q=c.Q||2;3.1e=c.1e||D;3.1a=c.1a||2h;3.1w=c.2E||7.1M;3.1U=c.2w||7.1E;3.1m=c.2M||7.1Q;3.1t=c.1t||3.1A();3.1i=c.1i||D;9(3.6.K){1u(1I 2p 3.6.K){3.6.K[1I].2I()}}3.6.K={};3.6.K[\'2Q\']=g.L.1q(3.6,3.6.L.2A,5(){3.1v()},3);3.6.K[\'2f\']=g.L.1q(3.6,3.6.L.2K,5(){3.18()},3);3.1v()}7.8.2u=5(a){3.f=a};7.8.1y=5(){4 l=3.f.k;v(l--){4 a=3.f[l];3.6.1O(a);a.W=D;9(a.C){a.C=D}}3.t.2n();l=3.r.k;v(l--){3.r[l].1g()}3.r=[]};7.8.1v=5(){3.1y();3.18()};7.8.18=5(){3.1s(0)};7.8.1s=5(a){4 b=3;4 i=a;4 c=3.f.k;4 d=1G.1W(a+3.1a,c);9(a===0){3.A=3.1o(3.6.2C());3.E=3.6.O();9(2S 3.T!=="2j"){2O(3.T);1C 3.T}}1u(;i<d;i++){4 e=3.f[i];9(!e.W&&3.A.20(e.S())){3.1S(e)}}9(d<c){3.T=24(5(){b.1s(d)},0)}I{1C 3.T;24(5(){b.22()},0)}};7.8.1o=5(a){4 b=3.6.2y,U,V,1c,1k;U=b.1K(a.2r());U.x+=3.G;U.y-=3.G;V=b.1K(a.2G());V.x-=3.G;V.y+=3.G;1c=b.1Y(U);1k=b.1Y(V);o h g.2U(1k,1c)};7.8.1S=5(a){4 d,w,j,l=3.r.k;4 b=2W;4 c=F;v(l--){w=3.r[l];9(w.j){d=3.1x(w.j,a.S());9(d<b){b=d;c=w}}}9(c&&c.1N(a)){c.17(a)}I{w=h s(3);w.17(a);3.r.1f(w)}};7.8.1x=5(a,b){o a.2e(b)/2m};7.8.22=5(){4 a=3,l=3.r.k,M=3.N(),1F=3.6.O();v(l--){4 b=3.r[l];1V=b.f.k;9(1F>=M){4 i=b.f.k;v(i--){4 c=b.f[i];9(!c.C){3.t.X(c,3.E,3.E);c.C=15}}1B}I 9(1V<3.Q){4 i=b.f.k;v(i--){4 c=b.f[i];9(!c.C){3.t.X(c,3.E,3.E);c.C=15}}1B}I{4 i=b.f.k;v(i--){4 c=b.f[i];3.6.1O(c);c.C=D}}b.1Z()}};7.8.N=5(){o 3.M||3.6.N()};7.8.26=5(a){o 3.1t[a.1R(3.1b())]};7.8.1A=5(){4 a=[];1u(4 i=0;i<3.1b();i++){a.1f(3.23(i))}o a};7.8.23=5(a){4 b=3.1m[a];4 c=3.1w+(a+1)+3.1U;4 d={1J:c,H:b,14:b,16:[-1j(b/2,10),-1j(b/2,10)],P:\'#2i\',R:11};o d};7.8.1b=5(){o 3.1m.k};7.1M="2B://2J-2R-2Y-32-36.3a.3d/2q/2F/2V/34/m";7.1E=".3f";7.1Q=[2x,30,3e,2N,38];5 s(a){3.B=a;3.t=a.t;3.6=a.6;3.j=F;3.f=[];3.Z=h g.1z();3.A=F;3.Q=a.Q;3.p=F}s.8.17=5(a){4 b,i,E=3.6.O();9(a.W)o D;9(!3.j){3.j=a.S();3.A=3.19()}I 9(3.B.1e){4 l=3.f.k+1,1l=a.S();4 c=(3.j.1p()*(l-1)+1l.1p())/l;4 d=(3.j.1r()*(l-1)+1l.1r())/l;3.j=h g.1P(d,c);3.A=3.19()}a.W=15;3.f.1f(a);3.Z.X(a.2g());o 15};s.8.2a=5(){o 3.Z};s.8.19=5(){4 a=h g.1z(3.j);o 3.B.1o(a)};s.8.1N=5(a){o 3.A.20(a.S())};s.8.1Z=5(){4 a=3,J=h g.1P(3.j.1r(),3.j.1p());9(3.p){3.t.1g(3.p)}9(3.B.1i){4 b=h g.25(\'<Y n="1H:2c;J:1h;28-H:$[n.q.u.y]z;H:$[n.q.u.y]z;14:$[n.q.u.x]z;1X-2b:j"><2o 2v="$[n.q.1n]" 2k="" n="J:2P;2X:0;2H:0"><1D n="J:1h;13-1T:27;13-u:$[R|12]z;21:$[P|#29]">$[1d|0]</1D></Y>\')}I{4 b=h g.25(\'<Y n="1H:2c;J:1h;28-H:$[n.q.u.y]z;H:$[n.q.u.y]z;14:$[n.q.u.x]z;1X-2b:j;2z:2s($[n.q.1n]) 2L-2Z;13-1T:27;13-u:$[R|12]z;21:$[P|#29]">$[1d|0]</Y>\')}4 c=3.B.26(3);4 d=h g.2D();d.q=h g.2T(b);d.q.1n=c.1J;d.q.u=h g.1L(c.14,c.H);d.q.16=h g.1L(c.16[0],c.16[1]);3.p=h g.31(J,{n:d,33:D});3.p.1d=3.f.k;3.p.R=c.R;3.p.P=c.P;g.L.1q(3.p,3.p.L.35,5(){3.6.37(3.2a());9(3.B.N()<3.6.O()){3.6.39(3.B.N()+1)}},3);4 e=3.6.O();3.t.X(3.p,e,e)};s.8.1g=5(){3.f=[];3.Z.3b();9(3.p){3.p=F}};s.8.1R=5(a){4 b=-1;4 c=3.f.k.3c();4 d=c;v(d!==0){d=1j(d/10,10);b++}b=1G.1W(b,a-1);o b};',62,202,'|||this|var|function|map|YandexClusterer|prototype|if||||||markers|YMaps|new||center|length|||style|return|point|iconStyle|clusters|YandexCluster|yandexObjectManager|size|while|cluster|||px|bounds|clustererObject|isOnMap|false|zoom|null|grid|height|else|position|_yandexClustererEvents|Events|max_zoom|getMaxZoom|getZoom|textColor|min_size|textSize|getCoordPoint|timerRefStatic|rtPix|lbPix|isAdded|add|div|markers_bounds||||font|width|true|offset|addMarker|redraw|calculateBounds|batch|getStylesCount|ne|markersCount|centered|push|remove|relative|printable|parseInt|sw|m_coord|imageSizes_|href|extendBounds|getLat|observe|getLng|createClusters|styles|for|repaint|imagePath_|distanceBetween|clearMarkers|GeoCollectionBounds|generateClusterStyles|continue|delete|span|IMAGE_EXTENSION|max_map_zoom|Math|cursor|event|icon|coordinatesToMapPixels|Point|IMAGE_PATH|isMarkerInBounds|removeOverlay|GeoPoint|IMAGE_SIZES|getIconStyleIndex|addToCluster|weight|imageExtension_|count|min|text|mapPixelsToCoordinates|showIcon|contains|color|updateClusterIcons|genStyleForIndex|setTimeout|Template|getClusterStyle|bold|line|000|getClusterBounds|align|pointer|ObjectManager|distance|move|getGeoPoint|400|000000|undefined|alt|60|1000|removeAll|img|in|svn|getRightTop|url|addOverlay|setMarkers|src|imageExtension|53|converter|background|Update|http|getBounds|Style|imagePath|trunk|getLeftBottom|top|cleanup|google|MoveEnd|no|imageSizes|78|clearTimeout|absolute|update|maps|typeof|IconStyle|GeoBounds|markerclustererplus|40000|left|utility|repeat|56|Placemark|library|hasBalloon|images|Click|v3|setBounds|90|setZoom|googlecode|clear|toString|com|66|png'.split('|'),0,{}))