// JavaScript Document

// A TextualZoomControl is a GControl that displays textual "Zoom In"
// and "Zoom Out" buttons (as opposed to the iconic buttons used in
// Google Maps).

// We define the function first
function TextualZoomControl() {
}

// To "subclass" the GControl, we set the prototype object to
// an instance of the GControl object
TextualZoomControl.prototype = new GControl();

// Creates a one DIV for each of the buttons and places them in a container
// DIV which is returned as our control element. We add the control to
// to the map container and return the element for the map class to
// position properly.
TextualZoomControl.prototype.initialize = function(map) {
  var container = document.createElement("div");

  var zoomInDiv = document.createElement("div");
  this.setButtonStyle_(zoomInDiv);
  container.appendChild(zoomInDiv);
  zoomInDiv.appendChild(document.createTextNode("Zoom In"));
  GEvent.addDomListener(zoomInDiv, "click", function() {
    map.zoomIn();
  });

  var centreDiv = document.createElement("div");
  this.setButtonStyle_(centreDiv);
  container.appendChild(centreDiv);
  centreDiv.appendChild(document.createTextNode("Re-Center"));
  GEvent.addDomListener(centreDiv, "click", function() {
	var point = new GLatLng(lat,lon);
	map.setCenter(point, zoom);
  });

  var zoomOutDiv = document.createElement("div");
  this.setButtonStyle_(zoomOutDiv);
  container.appendChild(zoomOutDiv);
  zoomOutDiv.appendChild(document.createTextNode("Zoom Out"));
  GEvent.addDomListener(zoomOutDiv, "click", function() {
    map.zoomOut();
  });

  map.getContainer().appendChild(container);
  return container;
}

// By default, the control will appear in the top left corner of the
// map with 7 pixels of padding.
TextualZoomControl.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(3, 3));
}

// Sets the proper CSS for the given button element.
TextualZoomControl.prototype.setButtonStyle_ = function(button) {
  button.style.textDecoration = "underline";
  button.style.color = "#000000";
  button.style.backgroundColor = "white";
  button.style.font = "small Arial";
  button.style.border = "1px solid black";
  button.style.padding = "2px";
  button.style.marginBottom = "3px";
  button.style.textAlign = "center";
  button.style.fontSize = "0.6em";
  button.style.width = "6em";
  button.style.cursor = "pointer";
  button.style.float = "left";
}




/*
* centers a google map at a specific lat,lon and zoom and plonks a marker in the middle
*/
function loadGoogleMap(lat,lon,zoom) {
  if (GBrowserIsCompatible()) {
	var map = new GMap2(document.getElementById("googlemap"));
//	map.addControl(new GSmallMapControl());
	map.addControl(new TextualZoomControl());
	var point = new GLatLng(lat,lon);
	map.setCenter(point, zoom);
	map.addOverlay(new GMarker(point));	
  }
}

window.onload = function(){
	loadGoogleMap(lat,lon,zoom);	
}
