var yougamap;
var loadEntryMap;

var complexMarker = makeMarker("all");
var gourmetMarker = makeMarker("gourmet");
var lifeMarker    = makeMarker("life");
var healthMarker  = makeMarker("health");
var buyMarker     = makeMarker("buy");
var eduMarker     = makeMarker("edu");

function setPosition(map, nl, el, data, prop)
{
    var point=new GLatLng(nl, el);
    var marker;

    if (prop=="gourmet")
    {
        marker = new GMarker(point, gourmetMarker);
    }else if (prop=="health")
    {
        marker = new GMarker(point, healthMarker);
    }else if (prop=="buy")
    {
        marker = new GMarker(point, buyMarker);
    }else if (prop=="edu")
    {
        marker = new GMarker(point, eduMarker);
    }else if (prop=="life")
    {
        marker = new GMarker(point, lifeMarker);
    }else
    {
        marker = new GMarker(point, complexMarker);
    }

    map.addOverlay(marker);
    var html = "<div style='width:200px;'>"+data+"</div>";
    GEvent.addListener(marker, "click", function() 
    {
       marker.openInfoWindowHtml(html);
    });
}

function makeMarker(prop)
{
    var curicon = new GIcon();
    curicon.image = "/icon/marker_"+prop+".png";
    curicon.shadow = "/icon/marker_shadow.png";
    curicon.iconSize = new GSize(20, 34);
    curicon.shadowSize = new GSize(37, 34);
    curicon.iconAnchor = new GLatLng(19, 9);
    curicon.infoWindowAnchor = new GLatLng(1, 15);
    return curicon;
}

function showMarker(request)
{
    var newArr;
    eval("newArr = "+request.responseText);
    for (var i=0; i<newArr.latitude.length; i++)
    {
        setPosition(yougamap, newArr.latitude[i], newArr.longitude[i], newArr.result[i], newArr.prop[i]);
    }
}

function showMarker2(request)
{
    var newArr;
    eval("newArr = "+request.responseText);
    for (var i=0; i<newArr.latitude.length; i++)
    {
        var map = new GMap2($("EntryMapMain"));
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.setCenter(new GLatLng(newArr.latitude[i], newArr.longitude[i]),17);
        setPosition(map, newArr.latitude[i], newArr.longitude[i], newArr.result[i], newArr.prop[i]);
    }
}

function writeMarker(map, prop)
{
    map.clearOverlays();
    var url   = "/hidden/yougamaps.cgi";
    var param = "prop="+prop;
    var ajax = new Ajax.Request(
                                url, 
                                    {
                                     method: 'get',
                                     parameters: param,
                                     onComplete: showMarker
                                    }
                               );
}
function mapinit()
{
    if (GBrowserIsCompatible()) {
        yougamap = new GMap2(document.getElementById("yougamaps"));
        yougamap.addControl(new GMapTypeControl());
        yougamap.addControl(new GLargeMapControl());
        yougamap.setCenter(new GLatLng(35.626706, 139.632849),17);
        writeMarker(yougamap, "gourmet");
    }
}

function writeEntryMarker(map, entryid)
{
    var url   = "/hidden/yougamaps.cgi";
    var param = "id="+entryid;
    var ajax = new Ajax.Request(
                                url, 
                                    {
                                     method: 'get',
                                     parameters: param,
                                     onComplete: showMarker2
                                    }
                               );
}

function showEntryMap(mapid, entryid)
{
    if (GBrowserIsCompatible() && loadEntryMap!=1) {
        writeEntryMarker(yougamap, entryid);
        loadEntryMap = 1;
    }
}
