var map;
var kmlDir = window.location.protocol + "//" + window.location.host + "/files/kml/";
var time = (new Date().getTime());
var layers = {
 "farm-markets": {"url": kmlDir+"farm-markets.kml?" + time, "name":"Farm Markets"},
 "fitness-recreation-centers": {"url": kmlDir+"fitness-recreation-centers.kml?" + time, "name":"Fitness & Recreation Centers"},
 "hospitals": {"url": kmlDir+"hospitals.kml?" + time, "name":"Hospitals"},
 "grocery-stores": {"url": kmlDir+"grocery-stores.kml?" + time, "name":"Grocery Stores"}
};

//function initLoadLayers(){}
//directions: javascript:directions = new GDirections(map, document.getElementById("directions")); directions.load("New York, NY to Chicago, IL");

function onLoad() {
  map = new GMap2(document.getElementById("map")); 
  map.setCenter(new GLatLng(41.444785,-82.140656), 11);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  //map.enableScrollWheelZoom();
  //map.addOverlay((new GGeoXml(kmlDir+"digital-partners.kml")));
  for(var layer in layers) {
    addLayer(layer);
  }
  document.getElementById('farm-markets').checked = true;
  toggleGeoXML('farm-markets', true); //=> initLoadLayers if >1 to be loaded*/
} 

function addLayer(id) {
  var layerDIV = document.createElement("div");

  var input = document.createElement("input");
  input.type = "checkbox";
  input.id = id;
  input.onclick = function () { toggleGeoXML(this.id, this.checked) };
  
/*  
  var nameA = document.createElement("span");

  var name = document.createTextNode(layers[id].name);
  nameA.appendChild(name);
*/
  var label = document.createElement("label");
  label.setAttribute("for", id);
  label.style.cursor = "pointer";
  label.appendChild(document.createTextNode(layers[id].name));

  layerDIV.appendChild(input);
  layerDIV.appendChild(label);
  document.getElementById("controls").appendChild(layerDIV);
}


function toggleGeoXML(id, checked) {
  if (checked) {
    var geoXml = new GGeoXml(layers[id].url);
    GEvent.addListener(geoXml, 'load', function() {
      if (geoXml.loadedCorrectly()) {
        /*geoXml.gotoDefaultViewport(map);*/
        layers[id].geoxml = geoXml;
        document.getElementById("status").innerHTML = "";
      }
    });
    layers[id].geoXml = geoXml;
    map.addOverlay(layers[id].geoXml);
    document.getElementById("status").innerHTML = "Loading...";
  
  } else if (layers[id].geoXml) {
    map.removeOverlay(layers[id].geoXml);
  }
}
//window.onload = onLoad; #in the body onload
function getDistance(q){
  d = new GDirections(map, document.getElementById("directions"));
  d.load(q);
  GEvent.addListener(d, "load", 
    function(){
      s = d.getDistance().meters + "\n" +
          d.getDistance().html + "\n" +
          d.getDuration().seconds + "\n" +
          d.getDuration().html + "\n" +
          d.getSummaryHtml()  + "\n" +
          d.getPolyline().getLength();
          for(i=0; i<d.getPolyline().getVertexCount(); i++){
            s += d.getPolyline().getVertex(i).toUrlValue() + "\n";
          }
      document.getElementById("directions").innerHTML += s.replace(/\n/g, "<br/>");
    }
  );
}