﻿// Map JavaScript  
Array.prototype.contains = function (element) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == element) {
            return true;
        }
    }
    return false;
}

Array.prototype.removeEmpty = function () {
    var newArr = new Array();
    for (var i = 0; i < this.length; i++) { 
        if(this[i] != null ) {
            newArr.push(this[i]);
        }
    }
    return newArr;
}

var markersObjects = new Array();  
var citySelectedByUser = 0;
var countrySelectedByUser = 0;

var poly = null;
function wmgooglemap_init(){

    if (GBrowserIsCompatible()) {
    
        var mapContainer = document.getElementById("map_container");
        var windowHeight = $(window).height();
        if(windowHeight != null && 1 == 1){ 
            $(mapContainer).height(windowHeight);
            $('#wmgooglemap').height(windowHeight);
        }
        map = new GMap2(document.getElementById("wmgooglemap"));
        map.setUIToDefault();
        map.minZoom = 3;  
        map.maxZoom = 16;  
        mapZoom = (glNid != null) ? map.maxZoom : mapZoom;
        map.removeMapType(G_HYBRID_MAP); 
        map.markersNidKey = new Array();  
        //map.addControl(new GLargeMapControl());
        //map.addControl(new GOverviewMapControl());
        //var mapControl = new GMapTypeControl();
        //map.addControl(mapControl);
        //map.addControl(new GScaleControl()); 
        //map.enableScrollWheelZoom();
        map.setCenter(new GLatLng(mapCenterLat, mapCenterLon), mapZoom);
        
    }
    
    //map.enableScrollWheelZoom();
    map.getMaxZoom = function(){ return map.maxZoom; }
    map.setMaxZoom = function(max){ map.maxZoom = max; }
    map.getMinZoom = function(){ return map.minZoom; }
    map.setMinZoom = function(min){ map.minZoom = min; }

    
    var mapTypes = map.getMapTypes();
    
    for (var i=0; i<mapTypes.length; i++) {
        mapTypes[i].getMinimumResolution = function() {return map.minZoom;}
        mapTypes[i].getMaximumResolution = function() {return map.maxZoom;}
    }
    
    map.showWmData = 1;
    map.showCustomTools = 1;

    GEvent.addListener(map, 'zoomend', function() {
        map.loadJsData();
    });
            
    GEvent.addListener(map, 'dragend', function() {
       map.loadJsData();
    });

    map.setType = function (type) {
        this.selectedType = type;
    }

    map.setCity = function (city) {
        this.selectedCity = city;
        citySelectedByUser = 1;
        $('#text_sel_cit').text('выбран пользователем');
    }

    map.setCountry = function (country) {
        this.selectedCountry = country;
        countrySelectedByUser = 1;
        $('#text_sel_cou').text('выбрана пользователем');
    }

    map.calcDisplayRadius = function(){
    
        var gLatLngOne = map.getCenter();
        var gLatLngSec = map.getBounds().getSouthWest();
        
        var mileDistance = gLatLngOne.distanceFrom(gLatLngSec, 3959).toFixed(1);
        var kmDistance = (mileDistance * 1.609344).toFixed(1);
        var radius = parseInt(kmDistance);
        
        var encoded = '{"center": {"lat":'+ 
        map.getCenter().lat().toFixed(10)+ ', "lon":' 
            + map.getCenter().lng().toFixed(10) + '}, "radius": ' 
        + (radius * 1) + ', "sw": {"lat":'+ 
        map.getBounds().getSouthWest().lat().toFixed(10) + ', "lon":' +
        map.getBounds().getSouthWest().lng().toFixed(10) + '}, "ne": {"lat": '+
        map.getBounds().getNorthEast().lat().toFixed(10) + ', "lon":'+
        map.getBounds().getNorthEast().lng().toFixed(10) + ' }}';
        mapCurrentParams = $.evalJSON(encoded); 
        return mapCurrentParams;
    }  


    /* грузим маркеры для отображения объектов */  
    map.createMarkers = function (map, jsData) {
    
       $('#type_filter').css('display', 'none'); 
       var markers = new Array();  
       
       countries = new Array();
       objects = new Array();
       cities = new Array();
       
       if(jsData != null && jsData.length > 0) { 
       
            markersObjects = new Array();
            map.markersNidKey = new Array();
            if(map != null && (map.showWmData * 1) == 1) {

                var currentZoom = map.getZoom();
                var wmIcon = new GIcon(G_DEFAULT_ICON);
                wmIcon.image = 'http://geo.webmoney.ru/images/map/0.png';
                wmIcon.shadow = 'http://geo.webmoney.ru/images/map/shadow.png';
                wmIcon.iconSize = new GSize(32, 32);
                var markerOptions = { icon:wmIcon };
                var imageCouCity = 'http://geo.webmoney.ru/images/map/mini/0.gif';
                
                /* город, объекты */  
                if(currentZoom >= 14 ) {
                    markersObjects = new Array();
                    map.markersNidKey = new Array();
                    markers = new Array(); 
                    var m = 0;
                    objects = new Array();
                    $('#type_filter').css('display', 'block'); 
                    $('#text_title').text('Территория WebMoney: WM-объекты');
                    
                    $('#map-wmobjects').html('');
                    var textData = '<ul>';
                    
                    for(var i = 0; i < jsData.length; i++)
                    {
                         if(jsData[i] != null) {

                            var wmoIcon = new GIcon(G_DEFAULT_ICON);
                            wmoIcon.image = 'http://geo.webmoney.ru/images/map/'+jsData[i].Type+'.png';
                            wmoIcon.shadow = 'http://geo.webmoney.ru/images/map/shadow.png';
                            wmoIcon.iconSize = new GSize(32, 32);
                            var markerOptions = { icon:wmoIcon };
                            objects[i] =  jsData[i];
                            
                            var marker = new GMarker(new GLatLng(objects[i].Lat, 
                                    objects[i].Lon), markerOptions);
                            
                            var txtHtml = createWmInfo(jsData[i]);
                            
                            markers[m] = marker; 
                            markers[m].htmlInfo = txtHtml;
                            GEvent.addListener(markers[m], 'click', function () {
                                this.openInfoWindowHtml(this.htmlInfo);
                            });
                            map.markersNidKey[new String(objects[i].Nid)] = markers[m];
                            m++;
                            
                            var name =  objects[i].Name;
                            var image = 'http://geo.webmoney.ru/images/map/mini/'+jsData[i].Type+'.gif';
                            if(name.length > 50 ) { name = name.substring(0, 50)+ "&nbsp;..."; }
                            textData = textData + '<li><a href="#" onclick="openMarker(\''+ objects[i].Nid + '\'); '
                                + 'return false;"><img src="'
                                + image +'" alt="'+ name +'" align="absmiddle" /></a>&nbsp;'
                                + '<a href="#" onclick="openMarker(\''+ objects[i].Nid + '\'); return false;">' 
                                + name + '</a></li>';
                        }
                    }
                    $('#map-wmobjects').html(textData + '</ul>');
                    
                    return markers;
                }
                
                if(currentZoom > 10 && currentZoom < 14) {
                    $('#type_filter').css('display', 'none');
                    objects = new Array();
                    markers = new Array();
                    var mi = 0;
                    var mari = 0;
                    
                    $('#text_title').text('Территория WebMoney: WM-объекты');
                    
                    var textData = '<ul>';
                    textData = textData +
                                '<li><b>Для того, чтобы посмотреть детальную '+
                                'информацию об объектах, кликните на маркер</b></li>';
                    
                    for(var i = 0; i < jsData.length; i++)
                    {
                        if(jsData[i] != null) {
                            
                            var wmoGrIcon = new GIcon(G_DEFAULT_ICON);
                            wmoGrIcon.image = 'http://geo.webmoney.ru/images/map/group.png';
                            wmoGrIcon.shadow = 'http://geo.webmoney.ru/images/map/shadow.png';
                            wmoGrIcon.iconSize = new GSize(32, 32);
                            var markerGrOptions = { icon:wmoGrIcon };
                            
                            objects[i] = jsData[i];
                            
                            if(objects[i].Groups != null && objects[i].Groups.length > 0)
                            {
                                
                                var marker = new GMarker(new GLatLng(objects[i].Lat, 
                                objects[i].Lon), markerGrOptions);
                                
                                var txtHtmGroup = '<img  align="absmiddle" alt="Все WM-объекты" '+
                                ' src="http://geo.webmoney.ru/images/map/mini/0.gif">&nbsp;';     
                                txtHtmGroup = txtHtmGroup + 
                                '<a href="#" onclick="zoomMapWithType('+
                                objects[i].LatCenter + ','+
                                objects[i].LonCenter +',14,' + '0); return false;">';
                                txtHtmGroup = txtHtmGroup + 'Все WM-объекты';
                                txtHtmGroup = txtHtmGroup + '</a><br />';
                                for(var g = 0; g < objects[i].Groups.length; g++)
                                {
                                    if(objects[i].Groups[g] != null) {
                                        var file = 'http://geo.webmoney.ru/images/map/mini/' 
                                        + objects[i].Groups[g].Type + '.gif';
                                        var img = '<img src="'+ file +'" align="absmiddle" alt="' +
                                        objects[i].Groups[g].TypeName + '" title="'+
                                        objects[i].Groups[g].TypeName +'"/>'
                                        txtHtmGroup = txtHtmGroup + img + '&nbsp;';
                                        txtHtmGroup = txtHtmGroup + '<a href="#" onclick="zoomMapWithType('+
                                        objects[i].LatCenter + ','+
                                        objects[i].LonCenter +',14,' + 
                                        objects[i].Groups[g].Type +'); return false;">';
                                        txtHtmGroup = txtHtmGroup + objects[i].Groups[g].TypeName;
                                        txtHtmGroup = txtHtmGroup + '</a>';
                                        txtHtmGroup = txtHtmGroup + ' (' + objects[i].Groups[g].Cnt+')';
                                        txtHtmGroup = txtHtmGroup + '<br />';
                                    }
                                }
                                
                                markers[mi] = marker; 
                                markers[mi].htmlInfo = txtHtmGroup;
                                GEvent.addListener(markers[mi], 'click', function () {
                                    this.openInfoWindowHtml(this.htmlInfo);
                                }); 
                                mi++;
                                
                            } 
                             
                            if(objects[i].Groups == null && 
                               objects[i].Wmobjects != null && objects[i].Wmobjects.length > 0)
                            {
                                markersObjects = new Array();
                                map.markersNidKey = new Array();
                                var textDataObj = '';  
                                var ind = 0;
                                for(var ob = 0; ob < objects[i].Wmobjects.length; ob++)
                                {
                                    var wmoObIcon = new GIcon(G_DEFAULT_ICON);
                                    wmoObIcon.image = 'http://geo.webmoney.ru/images/map/'+
                                    objects[i].Wmobjects[ob].Type + '.png';
                                    wmoObIcon.shadow = 'http://geo.webmoney.ru/images/map/shadow.png';
                                    wmoObIcon.iconSize = new GSize(32, 32);
                                    var markerObOptions = { icon:wmoObIcon };
                                    var markerObject = new GMarker(new GLatLng(objects[i].Wmobjects[ob].Lat, 
                                    objects[i].Wmobjects[ob].Lon), markerObOptions);
                                   
                                    var txtHtmlObject = createWmInfo(objects[i].Wmobjects[ob]);
                                    
                                    markersObjects[mari] = markerObject;
                                    markersObjects[mari].htmlInfo = txtHtmlObject;
                                    GEvent.addListener(markersObjects[mari], 'click', function(){
                                        this.openInfoWindowHtml(this.htmlInfo);
                                    });
                                    map.markersNidKey[new String(objects[i].Wmobjects[ob].Nid)] = markersObjects[mari]; 
                                    mari++;
                                    
                                    
                                    var nameObj = objects[i].Wmobjects[ob].Name;
                                    var imageObj = 'http://geo.webmoney.ru/images/map/mini/'+ 
                                    objects[i].Wmobjects[ob].Type + '.gif';
                                
                                    textDataObj = textDataObj + '<li><a href="#" onclick="openMarker(\''
                                    + objects[i].Wmobjects[ob].Nid + '\'); return false;"><img src="'
                                    + imageObj +'" alt="'+ nameObj +'" align="absmiddle" /></a>&nbsp;'
                                    + '<a href="#" onclick="openMarker(\''
                                    + objects[i].Wmobjects[ob].Nid + '\'); return false;">' + nameObj + '</a></li>';
                                }
                                textData = textData + textDataObj;
                            }
                        }
                        $('#map-wmobjects').html(textData + '</ul>');
                    }
                    return [markers, markersObjects];
                }
                /* страна, города */  
                if(currentZoom > 3 && currentZoom <= 10) {
                    $('#type_filter').css('display', 'none');
                    $('#text_title').text('Территория WebMoney: WM-города');
                    markers = new Array();
                    var marki = 0;
                    var textData = '<ul>';
                    $('#map-wmobjects').html('');
                    
                    for(var i = 0; i < jsData.length; i++)
                    {
                        cities[i] =  jsData[i];
                        var marker = 
                        new GMarker(new GLatLng(jsData[i].Lat, jsData[i].Lon), markerOptions);
                        
                        
                        var txtHtmCit = '<div class="info-html"><b>' + cities[i].Name;  
                        txtHtmCit = txtHtmCit + '</b> (' + cities[i].Cnt + ')<br />';
                        txtHtmCit = txtHtmCit + '<img src="'
                        + imageCouCity+'" align="absmiddle" alt="'
                        + cities[i].Name +'" />'
                        +'<a href="cityex.aspx?city=' +  cities[i].Id ;
                        txtHtmCit = txtHtmCit + '">Все WM-объекты в этом городе</a><br />'
                        + '<span style="font-size:.8em;">(переход на сайт http://geo.webmoney.ru/)</span><br />';
                        txtHtmCit = txtHtmCit + '<a href="#" onclick=" map.setCity('
                            + cities[i].id +'); zoomMap('
                            + cities[i].Lat + ',' + cities[i].Lon 
                            + ',11); return false;"> Показать WM-объекты в городе '+ 
                        cities[i].Name+'</a><br />';
                        txtHtmCit = txtHtmCit + '</div>';
                        
                        markers[marki] = marker;
                        markers[marki].htmlInfo = txtHtmCit;
                        GEvent.addListener(markers[marki], 'click', function () {
                            this.openInfoWindowHtml(this.htmlInfo);
                        });
                        marki++;

                        textData = textData + '<li><img src="'
                            + imageCouCity+'" align="absmiddle" alt="'
                            + cities[i].Name +'" /><a href="#'
                            + cities[i].Name +'" onclick="map.setCity('
                            + cities[i].Id + '); zoomMap('
                            + cities[i].Lat + ',' + cities[i].Lon + ',11); return false;">' 
                            + cities[i].Name + '</a>&nbsp;('
                            + cities[i].Cnt +')</li>';
                    } 
                    
                    $('#map-wmobjects').html(textData + '</ul>');
                    return markers;
                }
                
                /* мир */ 
                if(currentZoom <= 3) {
                    var textData = '<ul>';
                    markers = new Array();
                    var mri = 0;
                    $('#type_filter').css('display', 'none');
                    $('#text_title').text('Территория WebMoney: WM-страны');
                    
                    for(var i = 0; i < jsData.length; i++)
                    {
                        countries[i] = jsData[i];
                        var marker = 
                        new GMarker(new GLatLng(jsData[i].Lat, jsData[i].Lon), markerOptions);
                        
                        var txtHtmCou = '<div class="info-html"><img src="'
                        + imageCouCity+'" align="absmiddle" alt="'
                        + countries[i].Name +'" />&nbsp;<b>' + countries[i].Name;  
                        txtHtmCou = txtHtmCou + '</b> (' + countries[i].CapitalName + ')<br />'
                        txtHtmCou = txtHtmCou 
                        +'<a href="country.aspx?country='+countries[i].Id 
                        +'">Показать все WM-объекты в этой стране</a><br />'
                        +'<span style="font-size:.8em;">(переход на сайт http://geo.webmoney.ru/)</span><br />';
                        txtHtmCou = txtHtmCou + '<a href="#" onclick="map.setCountry('
                            + countries[i].Id + '); map.setCity('
                            + countries[i].CapitalId +'); zoomMap('
                            + countries[i].Lat + ',' + countries[i].Lon 
                            + ',11); return false;"> Показать WM-объекты в городе '+ 
                        countries[i].CapitalName+'</a><br />';
                        txtHtmCou = txtHtmCou + '</div>';
                        
                        
                        markers[mri]= marker;
                        markers[mri].htmlInfo = txtHtmCou;
                        GEvent.addListener(markers[mri], 'click', function () {
                            this.openInfoWindowHtml(this.htmlInfo);
                        });
                        mri++;
                        
                        textData = textData + '<li><img src="'
                            + imageCouCity +'" align="absmiddle" alt="'
                            + countries[i].Name +'" /><a href="#'
                            + countries[i].Name + '" onclick="map.setCountry('
                            + countries[i].Id + '); zoomMap('
                            + countries[i].Lat + ',' + countries[i].Lon + ',5); return false;">' 
                            + countries[i].Name + '</a>&nbsp;'+ countries[i].CapitalName 
                            + '&nbsp;('+countries[i].Cnt+')</li>';
                    }    
                    $('#map-wmobjects').html(textData + '</ul>');
                    return markers;
                }
                
                //return markers;
            }
        }
    }
    
    map.clearAllMarkers = function() {
         markerMgr = null;   
         markerMgr = new GMarkerManager(map); 
         map.clearOverlays();
         markerMgr.refresh = function() {};
         markerMgr.Ko = function() {}; 
    }
    
    map.loadJsData = function(){

        $('#map-wmobjects').html('');  
        $('#map-details').css('display','none');  
        $('#map-details-city').css('display','none');  
        
        if((map.getZoom()> 8 && map.getZoom()<= 12) && (countrySelectedByUser == 0 || citySelectedByUser == 0) &&
            (map.selectedCountry == null || map.selectedCity == null)) 
        { 
            $('#div_wait').css('display', 'block');
            $('#text_info').text(' определение страны/города относительно центра карты, ждите...');
            $.ajax({
                url: 'jsmaplocation.aspx',
                type: 'GET',
                data: ({ lat: map.getCenter().lat().toFixed(13),  
                         lon: map.getCenter().lng().toFixed(13)}),
                dataType: 'json',
                success: function(json) 
                {
                    if(json != null) {
                        if(countrySelectedByUser == 0) {
                            map.selectedCountry = json.Country;
                            $('#text_sel_cou').html('<b>' + json.CouName + '</b>');
                        }
                        if(map.getZoom() > 8) {
                            if(citySelectedByUser == 0){
                                map.selectedCity = json.City;
                                $('#text_sel_cit').html('<b>' + json.CityName+'</b>');
                            }
                        }
                        var paramMap = map.calcDisplayRadius();
                        var cou = ((map.selectedCountry != null) ? map.selectedCountry : 0)*1;
                        var cit = ((map.selectedCity != null) ? map.selectedCity : 0)*1;
                        var type = getSelectedRadio() * 1;
                        map.getJsonData(map.getZoom(), paramMap.center.lat, 
                        paramMap.center.lon, paramMap.radius, cou, cit, type);
                    }
                },
                error: function(xhr, status, error) 
                {
                    $('#div_wait').css('display', 'none');
                    $('#text_info').text(' ошибка автоматического '+
                     'определения страны, выберите через меню');
                }
            });
        }
        else 
        {   
            var paramMap = map.calcDisplayRadius();
            var cou = ((map.selectedCountry != null) ? map.selectedCountry : 0)*1;
            var cit = ((map.selectedCity != null) ? map.selectedCity : 0)*1;
            var type = getSelectedRadio() * 1;
            map.getJsonData(map.getZoom(), paramMap.center.lat, 
            paramMap.center.lon, paramMap.radius, cou, cit, type);
        }
    }
    
    map.getJsonData = function (zoom, lati, longi, radius, setCountry, setCity, setObjectType) {
        if((map.showWmData * 1) == 1) { 
            
            $('#div_wait').css('display', 'block');
            $('#text_info').text(' загрузка объектов, ждите... / loading, please wait...');
            
            map.clearAllMarkers();        
        
            $.ajax({
                url: 'jsmemmapdata.aspx',
                type: 'GET',
                data: ({ z: zoom, lat: lati, lon: longi, r: radius, 
                    cou: setCountry, cit: setCity, type: setObjectType, 
                    swlat: map.calcDisplayRadius().sw.lat,
                    swlon: map.calcDisplayRadius().sw.lon,
                    nelat: map.calcDisplayRadius().ne.lat,
                    nelon: map.calcDisplayRadius().ne.lon}),
                    
                dataType: 'json',
                success: function(json) {
                    if(json != null && json.length > 0) { 
                        window.setTimeout( function(){
                            map.clearAllMarkers();
                            markerMgr = new GMarkerManager(map);   
                            
                            var mar = map.createMarkers(map, json);
                            
                            if(mar != null) {
                                if(mar.length > 0) { mar = mar.removeEmpty();}

                                /*устанавливаем маркеры относительно зума*/
                                if(zoom <= 3){
                                    if(mar.length > 0) {
                                        markerMgr.addMarkers(mar, map.minZoom, 3);    
                                    }
                                }    
                                if(zoom > 3 && zoom <= 10){
                                    if(mar.length > 0) { 
                                        markerMgr.addMarkers(mar, 4, 10);    
                                    }
                                }    
                                if(zoom > 10 && zoom < 14) {
                                    if(mar.length > 0) { 
                                        markerMgr.addMarkers(mar[0].removeEmpty(), 10, 14);    
                                        if(mar.length > 1) {
                                            markerMgr.addMarkers(mar[1].removeEmpty(), 10, 14); 
                                        }
                                    }
                                }
                                if(zoom >= 14){
                                    if(mar.length > 0) { 
                                        markerMgr.addMarkers(mar, 14, (map.maxZoom + 1));    
                                    }
                                }    
                                markerMgr.refresh();
                                
                                if(map.selectedObjectNid != null){        
                                    var nidObject = map.selectedObjectNid;
                                    if( map.markersNidKey != null) {
                                        if( map.markersNidKey[nidObject] != null) {
                                            map.markersNidKey[nidObject].openInfoWindowHtml(
                                                map.markersNidKey[nidObject].htmlInfo);
                                                map.selectedObjectNid = null;
                                        }
                                    }
                                }
                                
                                $('#text_info').text(' данные успешно загружены');
                            }
                            $('#text_info').text(' данные успешно загружены');
                        }, 0);
                    }
                    /*если на карте мало объектов */
                    if(json == null || json.length < 5) {
                        $('#text_info').text('WM-объекты на карте не найдены');
                        
                        var txtHtml = '<b>WM-объекты на карте не найдены, '
                            +'попробуйте уменьшить масштаб</b> ';
                            
                        $('#map-wmobjects').html(txtHtml);
                        
                        if(zoom > 3 && zoom < 10) {
                            var objects = new Array();
                            $.ajax({
                            url: 'jsmemtopobjects.aspx',
                            type: 'GET',
                            data: ({ cou: map.selectedCountry, top:6, 
                                lat: map.getCenter().lat().toFixed(10), 
                                lon: map.getCenter().lng().toFixed(10)}),
                            dataType: 'json',
                            success: function(json) { 
                                var txtHtml = '';
                                
                                if(json != null) { 
                                    objects = json;
                                    txtHtml = txtHtml + '<div>'
                                    txtHtml = txtHtml 
                                    + '<b style="font-size:.83em;">Для данного раздела '
                                    + 'карты WM-объекты не найдены</b><br />';
                                    txtHtml = txtHtml + 
                                    'Посмотрите другие объекты в этой стране<br />';
                                    
                                    txtHtml = txtHtml + '<a href="country.aspx?country='
                                        + map.selectedCountry + '">Все WM-объекты в этой стране</a>';
                                    for(var i = 0; i < objects.length; i++)
                                    {
                                        txtHtml = txtHtml + createWmInfo(objects[i]);
                                    }
                                    txtHtml = txtHtml + '</div>'
                                    $('#map-details-city-content').html('');
                                    $('#map-details-city-content').html(txtHtml);
                                    var left = $(window).width();
                                    $('#map-details-city').css('left', left - (380 + 10));
                                    $('#map-details-city').css('display','block');                                                           }
                                 
                            },
                            error: function(xhr, status, error) { }
                            });
                        }                        
                    }
                    $('#div_wait').css('display', 'none');
                },
                error: function(xhr, status, error) {
                    $('#div_wait').css('display', 'none');
                    $('#text_info').text(' произошла ошибка, данные не загружены');
                }
            });
        }
    }
    
    /*начало -- обработка параметра в URL */
    /*тип*/
    var types = new Array();
    types[0]="0";  
    types[1]="1";
    types[2]="3";
    types[3]="4";
    types[4]="5";  
    types[5]="6";  
    types[6]="7";  
    types[7]="11";  

    var t = jQuery.url.param("t"); 
    if(t != null && types.contains(t))
    {
        var id = '#type'+ (t * 1);
        $(id).attr('checked',true);
    }
    /*конец -- обработка параметра в URL */
    
    if(glNid != null) 
    { 
        loadInfo(glNid); 
    } 
    else
    {
         map.loadJsData(); 
    }
}

function getSelectedRadio() {

    if($('#type0').attr('checked') == true) return 0;
    
    if($('#type1').attr('checked') == true) return 1;
    
    if($('#type3').attr('checked') == true) return 3;
    
    if($('#type4').attr('checked') == true) return 4;
    
    if($('#type5').attr('checked') == true) return 5;
    
    if($('#type6').attr('checked') == true) return 6;
    
    if($('#type7').attr('checked') == true) return 7;
    
    if($('#type11').attr('checked') == true) return 11;
    
    return 0;
}

function radioChecked(){
    map.loadJsData(); 
}

/*wmgooglemap_init*/

function closeInfoWindow(id) {
    var windowDlg = document.getElementById(id); 
    if(windowDlg != null){    $(windowDlg).css('display','none'); }
}

function openMarker(nidObject)
{
    loadInfo(nidObject);
}

function loadInfo(nidObject){
    if(nidObject != null) 
    {
        $.ajax({
            url: 'jsmemwmodetails.aspx',
            type: 'GET',
            data: ({ nid: nidObject }),
            dataType: 'json',
            success: function(json) {
                if(json != null) { 
                    
                    if(map.selectedCity == null){
                        map.selectedCity = json.Citid; 
                        map.selectedCountry = json.Country; 
                    }
                    zoomMap(json.Lat, json.Lon, 16);    
                    map.loadJsData(); 
                    map.selectedObjectNid = nidObject;
                }
            },
            error: function(xhr, status, error) {
                alert('Объект не найден на карте');
                map.loadJsData();             
            }
        });
    }
    return false;
}
 

function createWmInfo(object)
{
    var txtHtml;
    if(object != null)
    {
        var image = '<img src="http://geo.webmoney.ru/images/map/mini/' 
            + object.Type + '.gif" align="absmiddle" alt="'
            + object.Name +'" border="0" />';
        var hrefLink = 'map.aspx?nid=' + object.Nid;
        txtHtml = '<div class="info-html"><a href="'+hrefLink+'">'+image+'</a>&nbsp;<a href="'+
        hrefLink +'"><b>'+ object.Name +'</b></a><br />';
        if(object.Address != null && object.Address.length > 0 ) {
            txtHtml = txtHtml +'адрес: <i>'+ object.Address +'</i><br />';
        }
        if(object.Metro != null && object.Metro.length > 0 ) {
            txtHtml = txtHtml +'метро: '+ object.Metro +'<br />';
        }
        if(object.Worktime != null && object.Worktime.length > 0 ) {
            txtHtml = txtHtml +'время раб.: '+ object.Worktime +'<br />';
        }
        if(object.Phone != null && object.Phone.length > 0 ) {
            txtHtml = txtHtml +'тел./факс.: '+ object.Phone +'<br />';
        }
        if(object.Tarif != null && object.Tarif.length > 0 ) {
            txtHtml = txtHtml +'тариф: '+ object.Tarif +'<br />';
        }
        if(object.Srok != null && object.Srok.length > 0 ) {
            txtHtml = txtHtml +'срок пополн.: '+ object.Srok +'<br />';
        }
        if(object.Help != null && object.Help.length > 0 ) {
            txtHtml = txtHtml +'инструкция: <a href="'+ object.Help 
            +'" target="_blank">' 
            + object.Help+'</a><br />';
        }
        if(object.Web != null && object.Web.length > 0 ) {
            txtHtml = txtHtml +'сайт: <a href="'+ object.Web +'" target="_blank">' 
            + object.Web+'</a><br />';   
        }
          
        txtHtml = txtHtml + '</div>';
    
    }
    return txtHtml;
}

function zoomMapWithType(lat, lon, zoom, type) {
     
     if(zoom == null){
        zoom = map.getZoom();
     }
     
     if(type != null){
        var id = '#type'+ (type * 1);
        $(id).attr('checked',true);
     }
     else
     {
         $('#type0').attr('checked',true);
     }
     map.setCenter(new GLatLng(lat, lon), zoom);
     //map.loadJsData(); 
}


function zoomMap(lat, lon, zoom) {
     if(zoom == null){
        zoom = map.getZoom();
     }
     map.setCenter(new GLatLng(lat, lon), zoom);
     //map.loadJsData(); 
}

function drawCircle(center, radius, nodes, liColor, liWidth, liOpa, fillColor, fillOpa)
{
    if(poly != null)
    {
        map.removeOverlay(poly);
	}
	radius = radius*1;

    bounds = new GLatLngBounds(); 
	var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
	var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;
	var points = [];
	var step = parseInt(360/nodes)||10;
	for(var i=0; i<=360; i+=step)
	{
	var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
	(radius/lngConv * Math.sin(i * Math.PI/180)));
	points.push(pint);
	bounds.extend(pint); //this is for fit function
	}
	points.push(points[0]); // Closes the circle, thanks Martin
	fillColor = fillColor||liColor||"#ffff99";
	liColor = "#ff0000";
	liWidth = liWidth||2;
	poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
	map.addOverlay(poly);
}

function levelZoom(zoom) {
     if(zoom == null){
        zoom = mapZoom;
     }
     map.setCenter(new GLatLng(map.getCenter().lat(), map.getCenter().lng()), zoom);
     //map.loadJsData(); 
}

$(window).bind('resize', function(){
    var mapContainer = document.getElementById("map_container");
    var windowHeight = $(window).height();
    if(windowHeight != null){ 
                $(mapContainer).height(windowHeight);
                $('#wmgooglemap').height(windowHeight);
    }
});


