var linkname;
var source_span;
function showMap (linkname,source_span) {
if(source_span) $("#llspn_source").val(source_span);
	if(!linkname)
	{		linkname = 'участок карты ' + (	($("#llspn_arr").children("span").length) + 1);
	}
    else
    {    	             var  saved_map = linkname;
                     saved_map = saved_map.split(',');
                     linkname=saved_map[4];
    }

	if(!linkname)
	{
		linkname = 'участок карты ' + (	($("#llspn_arr").children("span").length) + 1);
	}

			//имя метки
			$("#llspn_descr").val(linkname);
			showmodal();
            var map = new YMaps.Map(document.getElementById("YMapsID"));
            map.addControl(new YMaps.TypeControl());

            map.addControl(new YMaps.ToolBar([new YMaps.ToolBar.MoveButton(),new YMaps.ToolBar.MagnifierButton()]));
            map.addControl(new YMaps.Zoom());

            //map.enableMagnifier();

            // Установка для карты ее центра и масштаба
            if($("#llspn").val() || saved_map)
            {
                     if(!saved_map)
                     {
                     var  saved_map = $("#llspn").val();
                     saved_map =saved_map.split(',');
                     }

                        // Получаем параметры
            var params = {
                ll : (saved_map[0]+','+saved_map[1]),    // Центр карты
                spn : (saved_map[2]+','+saved_map[3]),  // Линейный размер области
                t : 'map'      // Тип карты
            };

            // Если в урле заданы необходимые параметры
            if (params.ll && params.spn && params.t) {
                // Центрируем карту в нужном месте
                var bounds = YMaps.GeoBounds.fromCenterAndSpan(YMaps.GeoPoint.fromString(params.ll), YMaps.Size.fromString(params.spn));
                map.setBounds(bounds);
            } else {
                // По умолчанию карта центрируется на Москве
                map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

            }

            }
			// если текущий участок карты не установлен выбираем Кремль
            else
            {
             var  current = new YMaps.GeoPoint(37.617069,55.752009);
             map.setCenter(current, 11);
            }

            // Динамически генерируем llspn
            YMaps.Events.observe(map, [map.Events.BoundsChange, map.Events.TypeChange],  function () {
                     $("#llspn").val(
                                map.getCenter().toString() +
                                ',' + map.getBounds().getSpan().toString(6)
                                );
            });

            var searchControl = new YMaps.SearchControl({noPlacemark : true,width:490});
            map.addControl(searchControl);
        }

function showMap2 () {
      YMaps.jQuery(function () {

        // создаём карту там, где находится пользователь
        //var loc = YMaps.location;
        //center = new YMaps.GeoPoint(loc.longitude, loc.latitude);
		showmodal();
        center = new YMaps.GeoPoint(37.604161,55.777565);
        //center = new YMaps.GeoPoint($center_map);
        var map = new YMaps.Map(document.getElementById("YMapsID"));
        map.setCenter(center, 12);
        map.enableScrollZoom();

            // Создание кнопки
            var button = new YMaps.ToolBarRadioButton(YMaps.ToolBar.DEFAULT_GROUP, {
                icon: "http://www.cian.ru/img/icon_zoom.png",
                caption: "задать область для поиска",
                hint: "задать на карте область для поиска"
            },{ selected: false});

            var toolbar = new YMaps.ToolBar(button);
          //  toolbar.add(button_search);

            // Добавление панели инструментов на карту
            map.addControl(toolbar);

            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.Zoom());
            //map.addControl(new YMaps.SmallZoom());

   // Создание стиля для многоугольника
   var style = new YMaps.Style("default#greenPoint");
   style.polygonStyle = new YMaps.PolygonStyle();
   style.polygonStyle.fill = 1;
   style.polygonStyle.outline = 1;
   style.polygonStyle.strokeWidth = 1;
   style.polygonStyle.strokeColor = "ff0000ff";
   style.polygonStyle.fillColor = "ff000055";

   style.polygonStyle.hasHint = 1;
   style.polygonStyle.hasBalloon = 0;

   YMaps.Styles.add("polygon#Example", style);

        // массив созданных плигонов
        var polygons = [];
        var polyCounter = 0;

        // кнопка включения полигона

	      YMaps.Events.observe(button, button.Events.Click, function () {

        // создаём новый полигон
          polygons[polyCounter] = new YMaps.Polygon([],{
			style: "polygon#Example",
            hasHint: 1,
            hasBalloon: 0
            });

          var polygon = polygons[polyCounter];
          polygon.name = "<b>одинарный клик</b> - вкл./выкл. рисования<br><b>двойной клик</b> - удаление нарисованной области";
          polygon.description = polyCounter;

          // Установка параметров режима редактирования - максимум - 200 точек
          polygon.setEditingOptions({
              drawing: true,
              maxPoints: 200
          });
          // добавляем на карту
          map.addOverlay(polygon);
          // начинаем редактирование
          polygon.startEditing();

          // удаляем полигон
          var remPolygonListener = YMaps.Events.observe(polygon, polygon.Events.DblClick, function (polygon, mEvent) {
            delete polygons[polygon.description];
            map.removeOverlay(polygon);
            YMaps.jQuery("#in_polygon_" +polygon.description).remove();
          }, this);


          // записываем изменения полигона
          var remPolygonListener = YMaps.Events.observe(polygon, polygon.Events.PositionChange, function (polygon, mEvent) {

             if(polygon.getNumPoints()>2)
             {
               curr_polygon='in_polygon_' + polygon.description;
               if(YMaps.jQuery("#curr_polygons").children().is('#'+ curr_polygon)) YMaps.jQuery('#' + curr_polygon).attr('value',polygon.getPoints().toString());
               else YMaps.jQuery("#curr_polygons").append('<input id="' + curr_polygon + '" name="in_polygon[' + polygon.description + ']" type="text" value="' + polygon.getPoints().toString() +'">');
             }
          }, this);

         // выключаем редактирование полигона по одинарному щелчку
          var remPolygonListener = YMaps.Events.observe(polygon, polygon.Events.Click, function (polygon, mEvent) {
          if(polygon.isEditing()) {polygon.stopEditing(); button.deselect();}
          else {polygon.startEditing(); button.select();}
          }, this);

          polyCounter++;
        });

      });
}

/*
  function clear_curr_dist(){
  	$("#llspn").val('');
  	$("#map_dist").hide();
  	}
*/

  function clear_curr_dist(){
  	$("#curr_polygons").empty('');
  	$("#map_dist").hide();
  	}



    function set_curr_dist(){
        //if(!$("#curr_polygons").children()) {alert('Район для поиска не был установлен');}
  	    //else
  		//{
  			$("#map_dist").hide();

  if($("#llspn_next").val()) { var next_llspn = $("#llspn_next").val(); next_llspn++; }
  else { var next_llspn = $("#llspn_arr").children("span").length; next_llspn++;}
  $("#llspn_next").val(next_llspn);

		$('#curr_polygons').children().each(function(){
  		    $("#llspn_arr").append("<span><br><input id='in_polygon[" + next_llspn + "]' name='in_polygon[" + next_llspn + "]' type='checkbox' onclick=\"$(this).parent().remove();\" value='" + $(this).val() + "' checked>участок карты " + next_llspn + "</span>");
            $("#llspn_next").val(next_llspn);
			next_llspn++;

		});

		$('#curr_polygons').empty();
  	   //}
  	}

/*
    function set_curr_dist(){
    if(!$("#curr_polygons").html()) {alert('Район для поиска не был установлен');}
  	else
  		{
  			$("#map_dist").hide();
  var llspn_descr = $("#llspn_descr").val();
  llspn_descr = llspn_descr.replace(/[a-z<>,;]/gi, '');
  if($("#llspn_next").val()) { var next_llspn = $("#llspn_next").val(); next_llspn++; }                                                                                                                                                                                                                                //escape(encodeURIComponent(llspn_descr))
  else { var next_llspn = $("#llspn_arr").children("span").length; next_llspn++;}
	$("#llspn_next").val(next_llspn);
  		//$("#llspn_arr").append("<span><br><input id='in)polygon[" + next_llspn +"]' name='in_polygon[" + next_llspn +"]' type='checkbox' onclick=\"$(this).parent().remove();\"  value='" + $("#llspn").val() + "' checked>" + "<a href=\"javascript: showMap('" + $("#llspn").val() + "," + llspn_descr + "','llspn[" + next_llspn +"]');\">" + llspn_descr + "</a></span>");

  		$("#llspn_arr").append("<span><br><input id='in)polygon[" + next_llspn +"]' name='in_polygon[" + next_llspn +"]' type='checkbox' onclick=\"$(this).parent().remove();\"  value='" + $("#llspn").val() + "' checked>" + llspn_descr + "</span>");

  		if($("#llspn_source").val()) {var llspn_source = $("#llspn_source").val(); $(document.getElementById(llspn_source)).parent().remove(); $("#llspn_source").val('');}

  	    }
  	}
*/

