

var map;
var localSearch = new GlocalSearch();
var forCMS = false


/* GOOGLE POSTCODE LOOKUP FUNCTIONS */
function usePointFromPostcode(postcode) {
	
	document.getElementById('iconLoading').style.display='inline';

	localSearch.setSearchCompleteCallback(null, 
		function(e) {
			if (localSearch.results[0])
			{
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				if (forCMS)
				  setLocationCMS(point)
				else
				  setLocation(point);
				  
			   document.frmengineer.submit();
			}else{
			  document.getElementById('iconLoading').style.display = 'none';
			  alert("Postcode not found!");
			}
		});	
		
	localSearch.execute(postcode + ", UK");
	return false
}


function setLocationCMS(point) {
  document.getElementById('iconLoading').style.display='none';
  document.getElementById('txtLat').value=point.lat()
  document.getElementById('txtLong').value= point.lng();
}

function setLocation(point) {
  var obj = document.getElementById('coords')
  obj.value=point.lat() + "," + point.lng();
  document.getElementById("frmFindengineer").submit();
}


var cm_mapMarkers = [];
var cm_mapHTMLS = [];
var icon;



/* GOOGLE MAP FUNCTIONS */
function createMarkers() {
  for(var x=0;x<points.length;x=x+3) {  
   // var marker = new LabeledMarker(, {icon: icon, labelText: points[x+2]});
    var marker = createMarker(new GLatLng(points[x],points[x+1]), points[x+2], (x+3)/3);
    map.addOverlay(marker);
    cm_mapMarkers.push(marker);
    //cm_mapHTMLS.push(html);
  }
}

var currentlink = null

function createMarker(point, html, rank) {
  var markerOpts = {};
  markerOpts = {
	"icon": icon,
	"clickable": true,
	"labelOffset": new GSize(-16, -8)
	};
  var newPoint = point;
  var marker = new GMarker(newPoint, markerOpts);

  GEvent.addListener(marker, "click", function() {
    if (currentlink) currentlink.className='engineer';
    currentlink = document.getElementById("engineer" + rank); 
    currentlink.className = 'engineerselected';
    marker.openInfoWindowHtml(html);
  });

  var header = document.getElementById("engineer" + rank)
  
  header.onclick = function() { 
    
    if (currentlink) currentlink.className='engineer';
    currentlink = this; 
    currentlink.className = 'engineerselected';
   // alert(currentlink);
    marker.openInfoWindowHtml(html);
    return false;
  }

  /*GEvent.addListener(marker, "mouseover", function() {
    marker.setImage('http://gmaps-samples.googlecode.com/svn/trunk/markers/circular/yellowcirclemarker.png');
  });

  GEvent.addListener(marker, "mouseout", function() {
    marker.setImage('http://gmaps-samples.googlecode.com/svn/trunk/markers/circular/greencirclemarker.png');
  });*/

  /*GEvent.addListener(marker, "infowindowclose", function() {
    marker.setImage('http://gmaps-samples.googlecode.com/svn/trunk/markers/circular/greencirclemarker.png');
  });*/

  return marker;
}

function placeMarkerAtPoint(point) {
	var marker = new GMarker(point);
	map.addOverlay(marker);
}

function setCenterToPoint(point) {
	map.setCenter(point, 17);
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
	  //if (document.getElementById("map")) {
      map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(homepoint, 11, G_HYBRID_MAP);
      icon = new GIcon();
      icon.image = '/graphics/mapicon.png';
      icon.iconSize = new GSize(14, 23);
      icon.iconAnchor = new GPoint(7, 23);
      icon.infoWindowAnchor = new GPoint(7, 5);
      createMarkers()
		//}
	}
}
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();
	  }
	}
}

function loadMap() {
  addLoadEvent(mapLoad);
  addUnLoadEvent(GUnload);
}