var map, mapBaseUrl;

function createMap()
{

    map = new YMaps.Map($("#YMapsID")[0]),

    map.setCenter(new YMaps.GeoPoint(34.366455, 61.785698), 11);

    var typeControl = new YMaps.TypeControl();
    typeControl.removeType(YMaps.MapType.MAP);
    typeControl.removeType(YMaps.MapType.SATELLITE);
    typeControl.removeType(YMaps.MapType.HYBRID);
    var myMap = new YMaps.MapType(YMaps.MapType.MAP.getLayers(), 'Карта');
    //var myHyb = new YMaps.MapType(YMaps.MapType.HYBRID.getLayers(), 'Спутник', {minZoom:9,maxZoom:14});
    typeControl.addType(myMap);
    //typeControl.addType(myHyb);
    map.setType(myMap);
    map.setMinZoom(11);

    // настраиваем расположение навигации на карте
    //  map.addControl(typeControl, new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT, new YMaps.Size(2, 5)));
    map.addControl(new YMaps.Zoom({noTips:true}), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT, new YMaps.Size(5, 5)));
    map.addControl(new YMaps.ToolBar(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT, new YMaps.Size(5, 5)));
    map.addControl(new YMaps.ScaleLine(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT, new YMaps.Size(50, 15)));

    //map.addControl(new YMaps.SmallZoom());
    //map.addControl(new YMaps.MiniMap());
    //map.addControl(new YMaps.ToolBar());
    //map.addControl(new YMaps.TypeControl());
    //map.addControl(new YMaps.SearchControl());

    map.enableRightButtonMagnifier();
    map.enableScrollZoom();


            mapBaseUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
            YMaps.jQuery("#YMapsLinkInput").attr("value", mapBaseUrl );

            // Получаем параметры из URL'а
            var params = {
                ll : getParam("ll"),          // Центр карты
                zoom : getParam("zm"),        // Масштаб
                layers : getParam("layers")   // Слои
            };

            var layersArray = new Array();
            layersArray = params.layers.split(',');

            // Если в урле заданы необходимые параметры центрируем карту в нужном месте
            if (params.ll && params.zoom) {
                map.setCenter(new YMaps.GeoPoint.fromString(params.ll), params.zoom);
            }

            if (params.layers) {
                for (var i=0;i<layersArray.length;i++)
                   {
                     var theLayer = '#layer_' + layersArray[i];
//                     map.addOverlay(layer+layersArray[i]);
                     YMaps.jQuery(theLayer).attr("checked", 1);
                   }
            }

            updateMapLinks();


            // Динамически формируем URL
            YMaps.Events.observe(map, [map.Events.BoundsChange, map.Events.Update],  function () {

               updateMapLinks();

            });

            // Получение параметра из URL'а
            function getParam (name, location) {
                location = location || window.location.search;
                var res = location.match(new RegExp('[?&]' + name + '=([^&]*)', 'i'));
                return (res && res[1] ? res[1] : '');
            }



    YMaps.Events.observe(map, map.Events.BalloonOpen, function (map) {
        balloon = map.getBalloon();
        $('#baloonOpenedId').text($('.objId').text());
        //map.update();
        $('.map_flash_container:visible').each(function() {
            var swf = $(this).attr('swf');
            if (swf)
            {
                $(this).attr('id', $(this).attr('flashid'));
                var so = new SWFObject(swf, $(this).attr('id'), "440", "330", "9.0.0", "#CCCCCC");
                so.addParam("quality", "high");
                so.write($(this).attr('id'));
                balloon.update();
            }
        });
    });

    YMaps.Events.observe(map, map.Events.BalloonClose, function (map) {
        $('#baloonOpenedId').text('');
        //map.update();
    });

}

function updateMapLinks()
{
                YMaps.jQuery("#YMapsLinkInput")
                    .attr("value", mapBaseUrl + "?ll=" + map.getCenter().toString() +
                                  "&zm=" + map.getZoom() +
                                  "&layers=" + YMaps.jQuery("#layersActiveList").text() +
                                  "&bln=" + YMaps.jQuery("#baloonOpenedId").text()
                    );

                //URL для ссылки "версия для печати"
                YMaps.jQuery("#YMapsLinkPrint")
                    .attr("href", mapBaseUrl + "?print=1&ll=" + map.getCenter().toString() +
                                  "&zm=" + map.getZoom() +
                                  "&layers=" + YMaps.jQuery("#layersActiveList").text() +
                                  "&bln=" + YMaps.jQuery("#baloonOpenedId").text()
                    );
}


