var lat = 52.34923504920046;
var lng = -1.4553558826446533;
var map;
var directions;
 

function setupMap() {

	map = new GMap2($('map-content'));
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	
	var directionsPanel = $('route');
	directions = new GDirections(map, directionsPanel);


	var icon = new GIcon();
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(24, 40);
	icon.shadowSize = new GSize(42, 40);
	icon.iconAnchor = new GPoint(12, 40);
	icon.infoWindowAnchor = new GPoint(5, 1);

	map.addControl(new GLargeMapControl());
	map.setCenter(new GLatLng(lat, lng), 12);

 	var point = new GLatLng(lat, lng);
  	map.addOverlay(new GMarker(point, icon));

}

function showPage(obj) {
	var content = $A(document.getElementsByClassName('content'));
	content.each(function(node){
		Element.hide(node);
	});
	var links = $A(document.getElementsByClassName('current'));
	links.each(function(node){
		Element.removeClassName(node,'current');
	});
	Element.show(obj.id+"-content");
	Element.addClassName(obj, 'current');
	map.checkResize();
	map.setCenter(new GLatLng(lat, lng), 12);
}

function showRoute() {
	var postcode = $('postcode').value;
	usePointFromPostcode(postcode, function(point) {
		var destination = new GLatLng(lat, lng);
		directions.load("from: " + point.y + "," + point.x + " to: " + destination.y + "," + destination.x, {preserveViewport: false, travelMode: G_TRAVEL_MODE_DRIVING});

		var content = $A(document.getElementsByClassName('directionInfo'));
		content.each(function(node){
			Element.show(node);
		});

		var url = "print.htm?sourceX=" + point.x + "&sourceY=" + point.y + "&destX=" + destination.x + "&destY=" + destination.y;
		$('printerFriendly').href=url;
	});
}

function usePointFromPostcode(postcode, callbackFunction) {
  var localSearch = new GlocalSearch();
  localSearch.setSearchCompleteCallback(null,
    function() {
      
      if (localSearch.results[0]) {    
        var resultLat = localSearch.results[0].lat;
        var resultLng = localSearch.results[0].lng;
        var point = new GLatLng(resultLat,resultLng);
        callbackFunction(point);
      }else{
        alert("Postcode not found!");
      }
    });  
    
  localSearch.execute(postcode + ", UK");
}