﻿//<![CDATA[

var g_map;
var g_markermanager;
var g_icon;

function createPropertyMarker(point, title, url) {
    var marker = new GMarker(point, { icon: g_icon, title: title/*, clickable:false*/ });
    GEvent.addListener(marker, 'click', function() {
        location.href = url;
    });
    return marker;
}

function moveendCallback(overlay, point) {
    if (!g_markermanager) g_markermanager = new MarkerManager(g_map);

    if (g_map.getZoom() >= 13) {
        var request = GXmlHttp.create();
        request.open('POST', '/Map/MapServ.asmx/ByBounds', true);
        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                g_map.closeInfoWindow();
                g_markermanager.clearMarkers();
                var response = request.responseXML;
                var mapinfo = response.documentElement;
                if (mapinfo) {
                    var properties = mapinfo.getElementsByTagName('PropertyGeocode');
                    if (properties.length == 0) {
                    }
                    else if (properties.length <= 50) {
                        var markers = [];
                        var centerPoint = g_map.fromLatLngToDivPixel(g_map.getCenter());
                        for (var i = 0; i < properties.length; i++) {
                            var property = properties[i];
                            var point = new GLatLng(parseFloat(property.getElementsByTagName('Latitude')[0].firstChild.nodeValue), parseFloat(property.getElementsByTagName('Longitude')[0].firstChild.nodeValue));
                            var title = property.getElementsByTagName('Title')[0].firstChild.nodeValue;
                            var url = "/Bukken/Syousai.aspx?ID=" + property.getElementsByTagName('ID')[0].firstChild.nodeValue;
                            var marker = createPropertyMarker(point, title, url);
                            if (g_map.fromLatLngToDivPixel(marker.getPoint()).equals(centerPoint)) {
                                g_map.openInfoWindowHtml(g_map.getCenter(), html);
                            }
                            markers.push(marker);
                        }
                        g_markermanager.addMarkers(markers, 0);
                    }
                    else {
                    }
                }
                g_markermanager.refresh();
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        request.send("bounds=" + g_map.getBounds());
    }
    else {
        g_markermanager.clearMarkers();
    }
}

function bindGMap(mapcontainer, initiallatlng, initialzoom) {
    if (GBrowserIsCompatible()) {
        g_icon = new GIcon();
        g_icon.image = '/Img/Map/Property.png';
        g_icon.iconSize = new GSize(22, 36);
        g_icon.iconAnchor = new GPoint(11, 18);
        g_icon.infoWindowAnchor = new GPoint(11, 18);
        g_icon.shadow = '/Img/Map/Shadow.png';
        g_icon.shadowSize = new GSize(46, 37);

        g_map = new GMap2(mapcontainer);
        g_map.disableDoubleClickZoom();
        GEvent.addListener(g_map, 'moveend', moveendCallback);
        g_map.setCenter(initiallatlng, initialzoom);
    }
    else {
    }
}

//]]>