var map = null;
var geocoder = null;
var cID;
var userAgent = window.navigator.userAgent.toLowerCase();
var appVersion = window.navigator.appVersion.toLowerCase();

function init(eID) {
  if (GBrowserIsCompatible()) {
    cID = eID;
    var mapsize = new GSize(628, 500);
    
    if(navigator.userAgent.indexOf("MSIE")!=-1){
        if(navigator.appVersion.charAt(0)==4){
              mapsize = new GSize(630, 500);
        }
    }
    
    if (userAgent.indexOf("msie") > -1) {
        if (appVersion.indexOf("msie 6.0") > -1) {
            mapsize = new GSize(630, 500);
        }
        else if (appVersion.indexOf("msie 7.0") > -1) {
            var mapsize = new GSize(628, 500);
        }
        else if (appVersion.indexOf("msie 8.0") > -1) {
            var mapsize = new GSize(628, 500);
        }
    }
    
    var opts = {size:mapsize};
    map = new GMap2(document.getElementById("map"), opts);
    map.addControl(new GLargeMapControl());
    map.addControl(new GHierarchicalMapTypeControl());
    map.enableScrollWheelZoom();
    downloadData();
    GEvent.addListener(map, "moveend", function(){reloadData();});
    geocoder = new GClientGeocoder();
  }
}

function createMarker(lat, lng, herf,icon){

    var marker = new GMarker(new GLatLng(lat, lng),icon);
    GEvent.addListener(marker, "click", function(){
      window.location.href=herf;
    });
    
  return marker;
}

function downloadData(){
  GDownloadUrl("http://re-mansion.com/map.xml", createMap);
}

function createMap(xmldata, statusCode){
  var xml = GXml.parse(xmldata);
  var markers = xml.documentElement.getElementsByTagName("marker");
  var n = 1;
  var myArray = "";
  
var N = markers.length;
var A = new Array(N);
      
  for (var i = 0; i < markers.length; i++) {
    var ids = markers[i].getElementsByTagName("id");
    var id = GXml.value(ids[0]);
    A[i] = new Array(2);

    if (id == cID){
    var lats = markers[i].getElementsByTagName("lat");
    var lngs = markers[i].getElementsByTagName("lng");
    var lat = parseFloat(GXml.value(lats[0]));
    var lng = parseFloat(GXml.value(lngs[0]));
    var ctID = id;
    var ctlat = lat;
    var ctlng = lng;
    map.setCenter(new GLatLng(ctlat, ctlng), 13);
    }
  }
  
  var icon = new GIcon();
      icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      icon.iconSize = new GSize(20, 34);
      icon.shadowSize = new GSize(40, 34);
      icon.iconAnchor = new GPoint(10, 34);
      icon.image = "http://www.google.com/mapfiles/marker.png";
  var zoom = map.getZoom();
  
  for (var i = 0; i < markers.length; i++) { 
  
    var ids = markers[i].getElementsByTagName("id");
    var lats = markers[i].getElementsByTagName("lat");
    var lngs = markers[i].getElementsByTagName("lng");
    var herfs = markers[i].getElementsByTagName("herf");
    var sales = markers[i].getElementsByTagName("sale");
    
    var id = GXml.value(ids[0]);
    var lat = parseFloat(GXml.value(lats[0]));
    var lng = parseFloat(GXml.value(lngs[0]));
    var herf = GXml.value(herfs[0]);
    var sale = GXml.value(sales[0]);

    var dist = map.fromLatLngToDivPixel(new GLatLng(lat, lng));
    var bdist = map.fromLatLngToDivPixel(new GLatLng(ctlat, ctlng));
    
    if (sale == 1){
  var icon = new GIcon();
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
    } 
    
    var kyori = ((dist.x - bdist.x) * (dist.x - bdist.x)) + ((dist.y - bdist.y) * (dist.y - bdist.y));
    A[i][0] = kyori;
    A[i][1] = id;
    
    if (Math.abs(dist.x - bdist.x) <= 315){
    if (Math.abs(dist.y - bdist.y) <= 250){
      var marker = createMarker(lat, lng, herf,icon);
      map.addOverlay(marker);
      n = n + 1;
    
      var icon = new GIcon();
      icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      icon.iconSize = new GSize(20, 34);
      icon.shadowSize = new GSize(40, 34);
      icon.iconAnchor = new GPoint(10, 34);
      icon.image = "http://www.google.com/mapfiles/marker.png";
    
    }
    }
  }
  
    A.sort(function(a, b) {
        return (a[0] > b[0]) ? 1 : -1;
    });
    
    for (var i = 1; i < 5; i++) {
        myArray = myArray + "eid" + i + "=" + A[i-1][1] + "&"; 
    }
    
    myHtml = "http://re-mansion.com/mtos/plugins/RealtimeRebuild/mt-realtime-rebuild.cgi?" + myArray + "tmpl_id=154&blog_id=1&submit=%E9%80%81%E4%BF%A1";
    var eplan = new AjaxViewer('eplan');
    eplan.load(myHtml);
  
}

function reloadData(){
  GDownloadUrl("http://re-mansion.com/map.xml", recreateMap);
}

function recreateMap(xmldata, statusCode){
  map.clearOverlays() ;
  var xml = GXml.parse(xmldata);
  var markers = xml.documentElement.getElementsByTagName("marker");
  var n = 1;
  var myArray = "";
  
  var N = markers.length;
  var A = new Array(N);
  
  var latlng = map.getCenter();
  var ctlat = latlng.lat();
  var ctlng = latlng.lng();

  var icon = new GIcon();
      icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      icon.iconSize = new GSize(20, 34);
      icon.shadowSize = new GSize(40, 34);
      icon.iconAnchor = new GPoint(10, 34);
      icon.image = "http://www.google.com/mapfiles/marker.png";
  var zoom = map.getZoom();
  
  for (var i = 0; i < markers.length; i++) {
    var ids = markers[i].getElementsByTagName("id");
    var lats = markers[i].getElementsByTagName("lat");
    var lngs = markers[i].getElementsByTagName("lng");
    var herfs = markers[i].getElementsByTagName("herf");
    var sales = markers[i].getElementsByTagName("sale");
    
    var id = GXml.value(ids[0]);
    var lat = parseFloat(GXml.value(lats[0]));
    var lng = parseFloat(GXml.value(lngs[0]));
    var herf = GXml.value(herfs[0]);
    var sale = GXml.value(sales[0]);

    var dist = map.fromLatLngToDivPixel(new GLatLng(lat, lng));
    var bdist = map.fromLatLngToDivPixel(new GLatLng(ctlat, ctlng));
    A[i] = new Array(2);
    var kyori = ((dist.x - bdist.x) * (dist.x - bdist.x)) + ((dist.y - bdist.y) * (dist.y - bdist.y));
    A[i][0] = kyori;
    A[i][1] = id;
    
    if (sale == 1){
  var icon = new GIcon();
      icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
      icon.iconSize = new GSize(12, 20);
      icon.shadowSize = new GSize(22, 20);
      icon.iconAnchor = new GPoint(6, 20);
      icon.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
    } 
        
    if (Math.abs(dist.x - bdist.x) <= 315){
    if (Math.abs(dist.y - bdist.y) <= 250){
    var marker = createMarker(lat, lng, herf,icon);
    map.addOverlay(marker);
    n = n + 1;
    
    }
    }

  var icon = new GIcon();
      icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
      icon.iconSize = new GSize(20, 34);
      icon.shadowSize = new GSize(40, 34);
      icon.iconAnchor = new GPoint(10, 34);
      icon.image = "http://www.google.com/mapfiles/marker.png";
      
  }
  
    A.sort(function(a, b) {
        return (a[0] > b[0]) ? 1 : -1;
    });
    
    for (var i = 1; i < 5; i++) {
        myArray = myArray + "eid" + i + "=" + A[i-1][1] + "&"; 
    }
    
    myHtml = "http://re-mansion.com/mtos/plugins/RealtimeRebuild/mt-realtime-rebuild.cgi?" + myArray + "tmpl_id=154&blog_id=1&submit=%E9%80%81%E4%BF%A1";
    var eplan = new AjaxViewer('eplan');
    eplan.load(myHtml);
  
}

function showAddress(address) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
      if (!point) {
        alert(address + " not found");
        } else {
         map.panTo(point);
        }
       }
    );
  }
}

