google.load("maps", "2", {"other_params":"sensor=false"});
var layers;
var map;

var geocoder;
var lat;
var lng;
var acc;

function initialize() {
      if (GBrowserIsCompatible()) {
     	map = new GMap2(document.getElementById("map"));
        map.setUIToDefault();
        map.setMapType(G_PHYSICAL_MAP);
        map.setCenter(new GLatLng(40.000000,-75.160000), 11);
        map.enableGoogleBar();
     	getLayers();
        //GLog.write()
// 		GEvent.addListener(map,"zoomend", function(newLevel) { Ê Ê Ê 
// 		if (newLevel>14) { 
// 		Ê Ê map.setMapType(G_NORMAL_MAP);
// 		Ê } else {
// 			map.setMapType(G_PHYSICAL_MAP);
// 		});
      }
}

function getLayers() {
	layers = {
	  
//	  "Markets":
//	 {"url": "http://www.phillymap.com/kml/markets.kml",
//	  "legend": "legend/libraries.jpg",
//	  "name": "Farmers Markets"}, 
//	  
	  "Shops":
	 {"url": "http://www.phillymap.com/kml/BikeShops1.kml",
	  "legend": "legend/metro.jpg",
	  "name": "Bike Shops"},
	  
	  "Trails":
	 {"url": "http://www.phillymap.com/kml/trails.kml",
	  "legend": "legend/metro.jpg",
	  "name": "Bike Trails"}, 
	  
	  "BikeLanes":
	 {"url": "http://www.phillymap.com/kml/PHLbikelanes.kmz",
	  "legend": "legend/police.jpg",
	  "name": "Bike Lanes"}
	  
	};
	
	for(var layer in layers) {
    addTR(layer, layers[layer].name);
    }
    document.getElementById(layer).checked = true;
    toggleGeoXML(layer, true);
}

function addTR(id) {
  var layerTR = document.createElement("tr");

  var inputTD = document.createElement("td");
  var input = document.createElement("input");
  input.type = "checkbox";
  input.id = id;
  input.onclick = function () { toggleGeoXML(this.id, this.checked) };
  inputTD.appendChild(input);

  var nameTD = document.createElement("td");
  var name = document.createTextNode(layers[id].name);
//   var legend = document.createElement("img");
//   legend.setAttribute("src", layers[id].legend);
//   nameTD.appendChild(legend);
  nameTD.appendChild(name);

  layerTR.appendChild(inputTD);
  layerTR.appendChild(nameTD);
  document.getElementById("legendTBODY").appendChild(layerTR);
}

function toggleGeoXML(id, checked) {
  if (checked) {
    var geoXml = new GGeoXml(layers[id].url);
    layers[id].geoXml = geoXml;

    map.addOverlay(geoXml);
  } else if (layers[id].geoXml) {
    map.removeOverlay(layers[id].geoXml);
  }
  
}

function findLocation()
{
	if (navigator.geolocation != null)
  navigator.geolocation.getCurrentPosition(foundLocation, noLocation,{maximumAge:10000,timeout:60000,enableHighAccuracy:true});
	else
  document.getElementById("message").innerHTML  = 'Browser does not support geoCoding';
}

function foundLocation(position)
{
	lat = position.coords.latitude;
	lng = position.coords.longitude;
	acc = position.coords.accuracy;
	showLocation();
}

function noLocation(error)
{
	document.getElementById("message").innerHTML  = 'Could not find location';
			alert(error.message);
}

function showLocation() {
	var zoom=14;
	map.setUIToDefault();
    var placeNow = new GLatLng(lat, lng);
  	map.setCenter(placeNow, zoom);
   
   	var manIcon = new GIcon();
	manIcon.image = "http://www.ravensmile.com/placekeepr/images/man.png"; 
	manIcon.iconSize= new GSize(32, 32);
	manIcon.iconAnchor= new GPoint(16,32);

	var currentPlace = new GMarker(placeNow, {icon:manIcon});
	map.addOverlay(currentPlace);
}


function showLegend() {
	var o = document.getElementById('legend');
	if(o.style.visibility == 'hidden') {
		o.style.visibility = 'visible';
	} else if(o.style.visibility == '') {
		o.style.visibility = 'hidden';
	} else {
		o.style.visibility = 'hidden';
	}
}