var map;
var geocoder;

function initialize() {
    var mapOptions = {
        googleBarOptions : {
            style : "new",
            adsOptions: {
                client: "partner-pub-0886439682917615",
                channel: "AdSense for Search channel",
                adsafe: "low",
                language: "en"
            }
        }
    }

    map = new google.maps.Map2(document.getElementById("map"), mapOptions);
    map.setCenter(new google.maps.LatLng(40.605423839088445,-83.595703125), 4);
    map.addControl(new google.maps.SmallMapControl());
    map.addControl(new google.maps.MapTypeControl());
    var types = map.getMapTypes();
    map.enableGoogleBar();
    map.setMapType(types[0]);
    geocoder = new google.maps.ClientGeocoder();

    google.maps.Event.addListener(map, "click", function(overlay, latlng) {
        if (latlng) {
            AFTwitter.address = latlng;
            geocoder.getLocations(latlng, AFTwitter.showAddress);
            AFTwitter.refresh();
        }
    });
}
var AFTwitter = {
    address : null,
    showAddress : function(response) {
        map.clearOverlays();
        if (!response || response.Status.code != 200) {
            alert("Status Code:" + response.Status.code);
        } else {
            place = response.Placemark[0];
            point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
            marker = new GMarker(point);
            map.addOverlay(marker);
            $("address").innerHTML = place.address;
        }
    },
    refresh : function(page) {
        if(!this.address) return;
        if (!page) page = 1;

        var more_link = $('more_link');
        if (more_link) more_link.remove()
        $('flash').update('');
        
        var zoom = this.getZoomStr();
        var q = $('search_tag').value.strip();

        if(q == ""){
            q = prompt("Enter the keyword to search:");
            
        }
        $('search_tag').value = q;
        new Ajax.Request("/twitter/update", {
            method: 'get',
            parameters: {
                lat : this.address.y,
                lng: this.address.x,
                page: page,
                q: q,
                zoom: zoom
            }
        });
    },
    select_user: function(event, user_id){
        $$(".twitter_profile_image").each(function(el){ 
            el.addClassName("fade");
        })
        $$(".twitter_profile_image." + user_id).each(function(el){ 
            el.removeClassName("fade");
        })
        Event.stop(event);
    },
    unselect_users : function() {
        $$(".twitter_profile_image").each(function(el){ 
            el.removeClassName("fade");
        });
    },
    getZoomStr : function() {
        switch(map.getZoom()) {
            case 0: 
            case 1: return "1600km";
            case 2: return "800km";
            case 3: return "400km";
            case 4: return "100km";
            case 5: return "50km";
            case 6: return "30km";
            case 7: return "20km";
            case 8: return "20km";
            case 9: return "20km";
            case 10: return "10km";
            case 11: return "10km";
            case 12: return "5km";
            case 13: return "3km";
            case 14: return "1km";
        }
        return "1km";
    }
}
google.setOnLoadCallback(initialize);
document.onclick = AFTwitter.unselect_users;
