var last_opened_info_window = null;
function createMarker(map, lat, lng, type, widget, draggable){
    var blueIcon = "http://www.google.cn/intl/en_us/mapfiles/ms/micons/blue-dot.png";
    var redIcon = "http://www.google.cn/intl/en_us/mapfiles/ms/micons/red-dot.png";
    var greenIcon = "http://www.google.cn/intl/en_us/mapfiles/ms/micons/green-dot.png";

    var icon = redIcon;
    if( type == 2 ){ icon = greenIcon; }
    if( type == 3 ){ icon = blueIcon;}

    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        icon: icon,
        map: map,
        draggable: typeof(draggable) == 'undefined' ? false: draggable,
        //animation: google.maps.Animation.DROP,
        title: "People"
    });

//    setTimeout(function(){
//        marker.setAnimation(null);
//    }, 500);

    if( typeof(widget) != "undefined" && widget ){
        var infowindow = new google.maps.InfoWindow({ content: document.getElementById(widget).innerHTML });
        google.maps.event.addListener(marker, 'click', function(){
            if( last_opened_info_window ){
                last_opened_info_window.close();
            }
            infowindow.open(map, marker);
            map.panTo(marker.getPosition());
            last_opened_info_window = infowindow;
        })
    }
    return marker;
}
function initializeMap(canvas_id, latitude, longitude, zoom){
    var _zoom = zoom ? zoom : 4;
    var mapOptions = {
        zoom: _zoom,
        center: new google.maps.LatLng(latitude, longitude),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById(canvas_id), mapOptions)
    return map;
}

function baseListener(map){
    google.maps.event.addListener(map, "moveend", function() {
        var center = map.getCenter();
        lastPosition = map.lastPosition;
        if( map.getZoom() >= 12){
            _lat = Math.pow(center.lat() - lastPosition.lat() , 2);
            _lng = Math.pow(center.lng() - lastPosition.lng() , 2);
            var length = Math.sqrt( _lat + _lng );
            if( length < 0.3 ){
                return;
            }

            $('#load-msg').text('加载数据中...');
            $('#load-msg').show();
            $.getJSON('/peoples?lat=' + center.lat() + '&lng=' + center.lng() , function(peoples){
                map.lastPosition = center;
                if( peoples.length > 0 ){
                    $('#load-msg').text('在附近添加了'+peoples.length+'个人...');
                }else{
                    $('#load-msg').text('在附近没有找到伙伴哦...');
                }
                $('#load-msg').fadeOut(5000);
                $(peoples).each(function(){
                    createMarker(this.latitude, this.longitude, this.type, this.html);
                });
            })
        }
    });
}

