var map = null;
var geocoder = null;
var cID;

function init(eID) {
  if (GBrowserIsCompatible()) {
    cID = eID;
    var mapsize = new GSize(392, 183);
    
    if(navigator.userAgent.indexOf("MSIE")!=-1){
        if(navigator.appVersion.charAt(0)==4){
              mapsize = new GSize(390, 183);
        }
    }
    
    var opts = {size:mapsize};
    map = new GMap2(document.getElementById("map"), opts);
    map.addControl(new GSmallMapControl());
    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), 15);
    }
  }
  
  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_red.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 (id == cID){
  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";
    }
    
    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) <= 200){
    if (Math.abs(dist.y - bdist.y) <= 100){
    var marker = createMarker(lat, lng, herf,icon);
    map.addOverlay(marker);
    n = n + 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_red.png"; 
    
    }
    }
  }
  
}

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://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_red.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 (id == cID){
  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";
    }
    
    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) <= 200){
    if (Math.abs(dist.y - bdist.y) <= 100){
    var marker = createMarker(lat, lng, herf,icon);
    map.addOverlay(marker);
    n = n + 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_red.png";
      
  }
  
}

