
function form_location_clean(e_id)
{
    $('#'+e_id+'_lat').val(0);
    $('#'+e_id+'_lng').val(0);
    $('#'+e_id+'_zoom').val(0);
    $('#'+e_id+'_map').hide();
}

function form_location_show(e_id)
{
    $('#'+e_id+'_map').show();
    
    if($('#'+e_id+'_map').attr('map_loaded') != 1)
    {
        $('#'+e_id+'_map').attr('map_loaded', 1);
    
        YMaps.load(function() {                                                                                                                                                     
            var mapContainer = $('#'+e_id+'_map'),
                map = new YMaps.Map(mapContainer[0]);
                
            map.setType(YMaps.MapType.HYBRID);

            map.e_id = e_id;
            
            maps[e_id] = map;
            
            if(($('#'+e_id+'_lat').val() > 0) &&
                ($('#'+e_id+'_lng').val() > 0) &&
                ($('#'+e_id+'_zoom').val() > 0))
            {
                map.setCenter(new YMaps.GeoPoint(
                    $('#'+e_id+'_lng').val(),
                    $('#'+e_id+'_lat').val()
                ), $('#'+e_id+'_zoom').val());
            }
            else
            {
                map.setCenter(new YMaps.GeoPoint(
                    $('#'+e_id+'_lng_default').val(),
                    $('#'+e_id+'_lat_default').val()
                ), $('#'+e_id+'_zoom_default').val());
            }
            
            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.SearchControl({resultsPerPage: 5, useMapBounds: 1}));
            
            map.placemark = new YMaps.Placemark(map.getCenter(), {draggable: 1});
            map.addOverlay(map.placemark);
            
            YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
                map.placemark.setGeoPoint(mEvent.getGeoPoint());
            });

            YMaps.Events.observe(map.placemark, map.placemark.Events.PositionChange, function (placemark, points) {
                $('#'+placemark.getMap().e_id+'_lat').val(points.newPoint.getLat());
                $('#'+placemark.getMap().e_id+'_lng').val(points.newPoint.getLng());
                $('#'+placemark.getMap().e_id+'_zoom').val(placemark.getMap().getZoom());
            });
            
            YMaps.Events.observe(map, map.Events.Update, function (map) {
                $('#'+map.e_id+'_zoom').val(map.getZoom());
            });
        });                                                                                         
    }
    else
    {
        if(maps[e_id])
        {
            if(($('#'+e_id+'_lat').val() > 0) &&
                ($('#'+e_id+'_lng').val() > 0) &&
                ($('#'+e_id+'_zoom').val() > 0))
            {
                maps[e_id].setCenter(new YMaps.GeoPoint(
                    $('#'+e_id+'_lng').val(),
                    $('#'+e_id+'_lat').val()
                ), $('#'+e_id+'_zoom').val());
            }
            else
            {
                maps[e_id].setCenter(new YMaps.GeoPoint(
                    $('#'+e_id+'_lng_default').val(),
                    $('#'+e_id+'_lat_default').val()
                ), $('#'+e_id+'_zoom_default').val());
            }
            
            maps[e_id].placemark.setGeoPoint(maps[e_id].getCenter());
        }
    }
}

function map_gallery_list_location_show()
{
    $(document).ready(function(){
        YMaps.load(function(){
            var mapContainer = $('#map'),
                map = new YMaps.Map(mapContainer[0]);

            map.setType(YMaps.MapType.HYBRID);

            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.SearchControl({resultsPerPage: 5, useMapBounds: 1}));
            
            var s = new YMaps.Style();
            s.iconStyle = new YMaps.IconStyle();
            s.iconStyle.href = 'http://www.shintop.ru/mod/gallery/style/i/m_photo.png';
            s.iconStyle.size = new YMaps.Point(27, 26);
            s.iconStyle.offset = new YMaps.Point(-9, -26);
            
            var points = [];
            var select = null;

            for(var i=0; i<gi.length; i++)
            {
                var p = new YMaps.Placemark(new YMaps.GeoPoint(gi[i][3],gi[i][4]), {style: s});
                p.name = '';
                p.description = '<a href="http://shintop.ru/phototrophy/user_photo.php?action=show&id='+gi[i][0]+'#content"><img src="'+gi[i][1]+'"></a>'
                    +'<br/><a href="http://shintop.ru/phototrophy/user_photo.php?action=show&id='+gi[i][0]+'#content">'+gi[i][2]+'</a>';
                gi[i][5] = p;
                map.addOverlay(p);
                points.push(p.getGeoPoint());
                if(gi[i][0] == select_id)
                    select = p;
            }
            
            map.setBounds(new YMaps.GeoCollectionBounds(points));
            
            if(select)
            {
                map.panTo(select.getGeoPoint());
                select.openBalloon();
            }
        });
    });
}

function map_gallery_location_show()
{
    $(document).ready(function(){
        YMaps.load(function(){
            var mapContainer = $('#map'),
                map = new YMaps.Map(mapContainer[0]);

            map.setType(YMaps.MapType.HYBRID);

            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.SearchControl({resultsPerPage: 5, useMapBounds: 1}));
            
            var s = new YMaps.Style();
            s.iconStyle = new YMaps.IconStyle();
            s.iconStyle.href = 'http://www.shintop.ru/mod/gallery/style/i/m_photo.png';
            s.iconStyle.size = new YMaps.Point(27, 26);
            s.iconStyle.offset = new YMaps.Point(-9, -26);
            
            var points = [];
            var select = null;

            for(var i=0; i<gi.length; i++)
            {
                var p = new YMaps.Placemark(new YMaps.GeoPoint(gi[i][3],gi[i][4]), {style: s});
                p.name = '';
                p.description = '<a href="http://shintop.ru/phototrophy/user_photo.php?action=gallery&id='+gi[i][0]+'&mode=map"><img src="'+gi[i][1]+'"></a>'
                    +'<br/><a href="http://shintop.ru/phototrophy/user_photo.php?action=gallery&id='+gi[i][0]+'&mode=map">'+gi[i][2]+'</a>';
                gi[i][5] = p;
                map.addOverlay(p);
                points.push(p.getGeoPoint());
                if(gi[i][0] == select_id)
                    select = p;
            }
            
            map.setBounds(new YMaps.GeoCollectionBounds(points));
            
            if(select)
            {
                map.panTo(select.getGeoPoint());
                select.openBalloon();
            }
        });
    });
}

function map_article_location_show()
{
    $(document).ready(function(){
        YMaps.load(function(){
            var mapContainer = $('#map'),
                map = new YMaps.Map(mapContainer[0]);

            map.setType(YMaps.MapType.HYBRID);

            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.SearchControl({resultsPerPage: 5, useMapBounds: 1}));
            
            var s = new YMaps.Style();
            s.iconStyle = new YMaps.IconStyle();
            s.iconStyle.href = 'http://www.shintop.ru/mod/gallery/style/i/m_info.png';
            s.iconStyle.size = new YMaps.Point(27, 26);
            s.iconStyle.offset = new YMaps.Point(-9, -26);
            
            var points = [];
            var select = null;

            for(var i=0; i<gi.length; i++)
            {
                var p = new YMaps.Placemark(new YMaps.GeoPoint(gi[i][3],gi[i][4]), {style: s});
                p.name = '';
                p.description = '<a href="http://shintop.ru/phototrophy/article.php?action=article_show&id='+gi[i][0]+'"><img src="'+gi[i][1]+'"></a>'
                    +'<br/><a href="http://shintop.ru/phototrophy/article.php?action=article_show&id='+gi[i][0]+'">'+gi[i][2]+'</a>';
                gi[i][5] = p;
                map.addOverlay(p);
                points.push(p.getGeoPoint());
                if(gi[i][0] == select_id)
                    select = p;
            }
            
            map.setBounds(new YMaps.GeoCollectionBounds(points));
            
            if(select)
            {
                map.panTo(select.getGeoPoint());
                select.openBalloon();
            }
        });
    });
}

function map_common_location_show()
{
    $(document).ready(function(){
        YMaps.load(function(){
            var mapContainer = $('#map'),
                map = new YMaps.Map(mapContainer[0]);

            map.setType(YMaps.MapType.HYBRID);

            map.addControl(new YMaps.Zoom());
            map.addControl(new YMaps.TypeControl());
            map.addControl(new YMaps.SearchControl({resultsPerPage: 5, useMapBounds: 1}));
            
            var points = [];
            var select = null;

            for(var i=0; i<gi.length; i++)
            {
                var p = new YMaps.Placemark(new YMaps.GeoPoint(gi[i][3],gi[i][4]), {style:gi[i][5]});
                p.name = '';
                
                if(gi[i][5] == 'default#photographerIcon')
                    p.description = '<a href="http://shintop.ru/phototrophy/user_photo.php?action=gallery&id='+gi[i][0]+'&mode=map"><img src="'+gi[i][1]+'"></a>'
                        +'<br/><a href="http://shintop.ru/phototrophy/user_photo.php?action=gallery&id='+gi[i][0]+'&mode=map">'+gi[i][2]+'</a>';
                else
                    p.description = '<a href="http://shintop.ru/phototrophy/user_photo.php?action=article_show&id='+gi[i][0]+'"><img src="'+gi[i][1]+'"></a>'
                        +'<br/><a href="http://shintop.ru/phototrophy/user_photo.php?action=article_show&id='+gi[i][0]+'">'+gi[i][2]+'</a>';
                        
                gi[i][6] = p;
                map.addOverlay(p);
                points.push(p.getGeoPoint());
                if(gi[i][0] == select_id)
                    select = p;
            }
            
            map.setBounds(new YMaps.GeoCollectionBounds(points));
            
            if(select)
            {
                map.panTo(select.getGeoPoint());
                select.openBalloon();
            }
        });
    });
}


