var localSearch = new GlocalSearch();
var map = null;
var point = null;
var mapobj 

function mapLoad() {
	if (GBrowserIsCompatible()) {
	  mapobj = document.getElementById("map")
	  usePointFromPostcode(pclocation);
	}
}

function showMap() {
  if(point) {
    map = new GMap2(mapobj);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
		map.setCenter(point, 13);
		marker = new GMarker(point, {draggable: false});
		map.addOverlay(marker);
		mapobj.style.display = 'block';
	} else {
	  mapobj.style.display = 'none';
	}
}

function usePointFromPostcode(postcode) {
	localSearch.setSearchCompleteCallback(null, 
		function() {
			if (localSearch.results[0]) {		
				point = new GLatLng(localSearch.results[0].lat,localSearch.results[0].lng);
				showMap();
			}
		});	
	localSearch.execute(postcode + ", UK");
}


function addEvent(obj, evType, fn){
  if (obj.addEventListener){
      obj.addEventListener(evType, fn, true);
      return true;
  } else if (obj.attachEvent){
      var r = obj.attachEvent("on"+evType, fn);
      return r;
  } else {
      return false;
  }
} 

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);
addUnLoadEvent(GUnload);

