/*
* Availible Maps
*	WXMapType: (default - G_NORMAL_MAP)
*		G_NORMAL_MAP		vector map with roads and road names
*		G_SATELLITE_MAP		satalite map
*		G_HYBRID_MAP		combined satalite map with vector overlay
*
*	WXMapZoom: (default - 12)
*		0					furtherst
*		17					closest
*
*	WXMapTypeControl: (default false)
*		true : false		display Satalite, Hybrid, Roads option
*
*	WXMapZoomControl: (default true)
*		true : false		displays zoom functionality
*
*	icon
*	icon.image = url.png
*	icon.shadow = url.png
*
* http://www.google.com/apis/maps/documentation/
*/

var map;
var localSearch = new GlocalSearch();

var WXMapType = G_NORMAL_MAP;
var WXMapZoom = 12;
var WXMapTypeControl = false;
var WXMapZoomControl = true;

var icon = new GIcon();
icon.image = "http://www.google.com/mapfiles/marker.png";
icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon.iconSize = new GSize(20, 30);
icon.shadowSize = new GSize(35, 30);
icon.iconAnchor = new GPoint(10, 30);

function findPostCode(){
	mapElement = document.getElementById('map');
	postcode = mapElement.title;
	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);
				
				var marker = new GMarker(point,icon);
				map.addOverlay(marker);
				map.setCenter(point, WXMapZoom);				
			}else{
				alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		if(WXMapZoomControl == true){
			map.addControl(new GLargeMapControl());
		}
		if(WXMapTypeControl == true){
			map.addControl(new GMapTypeControl());
		}
		map.setCenter(new GLatLng(54.622978,-2.592773), 5, WXMapType);
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}

addLoadEvent(mapLoad);
addLoadEvent(findPostCode);
addUnLoadEvent(GUnload);/*
* Availible Maps
*	WXMapType: (default - G_NORMAL_MAP)
*		G_NORMAL_MAP		vector map with roads and road names
*		G_SATELLITE_MAP		satalite map
*		G_HYBRID_MAP		combined satalite map with vector overlay
*
*	WXMapZoom: (default - 12)
*		0					furtherst
*		17					closest
*
*	WXMapTypeControl: (default false)
*		true : false		display Satalite, Hybrid, Roads option
*
*	WXMapZoomControl: (default true)
*		true : false		displays zoom functionality
*
*	icon
*	icon.image = url.png
*	icon.shadow = url.png
*
* http://www.google.com/apis/maps/documentation/
*/

var map;
var localSearch = new GlocalSearch();

var WXMapType = G_NORMAL_MAP;
var WXMapZoom = 12;
var WXMapTypeControl = false;
var WXMapZoomControl = true;

var icon = new GIcon();
icon.image = "http://www.google.com/mapfiles/marker.png";
icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
icon.iconSize = new GSize(20, 30);
icon.shadowSize = new GSize(35, 30);
icon.iconAnchor = new GPoint(10, 30);

function findPostCode(){
	mapElement = document.getElementById('map');
	postcode = mapElement.title;
	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);
				
				var marker = new GMarker(point,icon);
				map.addOverlay(marker);
				map.setCenter(point, WXMapZoom);				
			}else{
				alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		if(WXMapZoomControl == true){
			map.addControl(new GLargeMapControl());
		}
		if(WXMapTypeControl == true){
			map.addControl(new GMapTypeControl());
		}
		map.setCenter(new GLatLng(54.622978,-2.592773), 5, WXMapType);
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}

addLoadEvent(mapLoad);
addLoadEvent(findPostCode);
addUnLoadEvent(GUnload);