        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

            // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(55.983162,54.843187), 3);

            // Добавление элементов управления
            map.enableScrollZoom();
            map.addControl(new YMaps.ToolBar());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.Zoom());

            // Группы объектов
            var groups = [
                createGroup("Показать Домокомплекты", [
                    createPlacemark(new YMaps.GeoPoint(50.199079,53.244418),  "Самара"),
                    createPlacemark(new YMaps.GeoPoint(61.40082,55.160324),  "Челябинск"),
                    createPlacemark(new YMaps.GeoPoint(65.342322,55.453687),  "Курган"),
                    createPlacemark(new YMaps.GeoPoint(37.609218,55.753559),  "Москва"),
                    createPlacemark(new YMaps.GeoPoint(55.983161,54.738437),  "Республика Башкортостан")
                ], "default#redPoint"),
                createGroup("Показать Оборудование", [
                    createPlacemark(new YMaps.GeoPoint(37.609218,55.753559),  "Москва"),
                    createPlacemark(new YMaps.GeoPoint(48.03034,46.349636),  "Астрахань"),
                    createPlacemark(new YMaps.GeoPoint(44.997376,53.183188),  "Пенза"),
                    createPlacemark(new YMaps.GeoPoint(103.919547,52.541669),  "Ангарск"),
                    createPlacemark(new YMaps.GeoPoint(60.597259,56.838056),  "Екатеринбург"),
                    createPlacemark(new YMaps.GeoPoint(55.912266,53.375647),  "Салават"),
                    createPlacemark(new YMaps.GeoPoint(55.912266,53.375647),  "Набережные Челны"),
                    createPlacemark(new YMaps.GeoPoint(36.237041,54.533832),  "Калуга"),
                    createPlacemark(new YMaps.GeoPoint(87.113487,53.740749),  "Новокузнецк"),
                    createPlacemark(new YMaps.GeoPoint(44.997376,53.183188),  "Пенза"),
                    createPlacemark(new YMaps.GeoPoint(30.313497,59.938531),  "Санкт-Петербург"),
                    createPlacemark(new YMaps.GeoPoint(44.514208,48.708898),  "Волгоград"),
                    createPlacemark(new YMaps.GeoPoint(86.052433,55.371234),  "Кемерово"),
                    createPlacemark(new YMaps.GeoPoint(49.667232,58.603394),  "Киров"),
                    createPlacemark(new YMaps.GeoPoint(37.619028,54.193802),  "Тула"),
                    createPlacemark(new YMaps.GeoPoint(40.407138,56.128987),  "Владимир")
                ])
            ];

            // Создание списка групп
            for (var i = 0; i < groups.length; i++) {
                addMenuItem(groups[i], map, YMaps.jQuery("#map_selector"));
            }
        })

        // Добавление одного пункта в список
        function addMenuItem (group, map, menuContainer) {

            // Показать/скрыть группу на карте
            YMaps.jQuery("<a class=\"title\" href=\"#\">" + group.title + "</a>")
                .bind("click", function () {
                    var link = YMaps.jQuery(this);

                    // Если пункт меню "неактивный", то добавляем группу на карту,
                    // иначе - удаляем с карты
                    if (link.hasClass("active")) {
                        map.removeOverlay(group);
                    } else {
                        map.addOverlay(group);
                    }

                    // Меняем "активность" пункта меню
                    link.toggleClass("active");

                    return false;
                })

                // Добавление нового пункта меню в список
                .appendTo(
                    YMaps.jQuery("<li></li>").appendTo(menuContainer)
                )
        };

        // Создание группы
        function createGroup (title, objects, style) {
            var group = new YMaps.GeoObjectCollection(style);

            group.title = title;
            group.add(objects);

            return group;
        };

        // Создание метки
        function createPlacemark (point, name, description) {
            var placemark = new YMaps.Placemark(point);

            placemark.name = name;
            placemark.description = description;

            return placemark
        }
