2GIS API test

HTML

<script src="http://maps.api.2gis.ru/1.0?dummy=.js"></script>
<div id="main"></div>

CSS

#main { width: 500px; height: 400px; }
.active button { border-style: inset; }
textarea { width: 100%; }

JavaScript

DG.autoload(function(){
    var map = new DG.Map('main');
    map.setCenter(new DG.GeoPoint(82.927810142519,55.028936234826),15);
    map.controls.add(new DG.Controls.Zoom());
    map.geoclicker.disable();

    var balloon = new DG.Balloons.Common({
        geoPoint: new DG.GeoPoint(82.927810142519,55.028936234826),
        contentHtml: '<textarea id="balloon_textarea"></textarea>'});
    
    var makeMarker = function(geopoint, content) {
        var result = new DG.Markers.MarkerWithBalloon({
            geoPoint: geopoint,
            draggable: true,
            icon: new DG.Icon(
                'http://confluence.2gis.local/download/attachments/112984301/2gis-map.png?version=1&modificationDate=1367833556000',
                new DG.Size(18, 18),
                function() { return new DG.Point(-9, -9); }),
            balloonOptions: {
                contentHtml: content
            }});
        return result;
    }

    var ToolControl = DG.Controls.Abstract.extend({
        clickObserver: null,
        mapClickObserver: null,
        text: null,
        group: null,
        button: null,
        doOnActive: null,
        doOnInactive: null,
        doOnMapClick: null,

        setText: function(text) {
            this.text = text;
        },
        setGroup: function(group) {
            this.group = group;
        },
        setOnActive: function(onActive) {
            this.doOnActive = onActive;
        },
        setOnInactive: function(onInactive) {
            this.doOnInactive = onInactive;
        },
        setOnMapClick: function(onMapClick) {
            this.doOnMapClick = onMapClick;
        },
        onAddToMap: function(map) {
            var container = this.getContainer();
            this.button = document.createElement('button');
            this.button.id = container.id + '_button';
            this.button.textContent = this.text;
            container.appendChild(this.button);
            var that = this;
           ...