var map;
var placeLayer;
var mgr;
var mapbaseurl;
var icon = null;
var hlmarker;

function createIcon(type) {
	var i = new GIcon();
	if (type) {
		i.image = img[type].src;
	}
	else {
		i.image = "http://www.google.com/mapfiles/marker.png";
		i.shadow = "http://www.google.com/mapfiles/shadow50.png";
	}
//	icon.iconSize = new GSize(20, 34);
//	icon.shadowSize = new GSize(37, 34);
	i.iconAnchor = new GPoint(7, 7);

	return i;
}

var img = new Array();

img["fell"] = getimg("/graphics/gmapfell.png");
//img["lake"] = getimg("/graphics/gmaplake.png");
img["lake"] = getimg("/graphics/gmaplake.png");
img["biz"] = getimg("/graphics/mm_20_red.png");
img["district"] = getimg("/graphics/mm_20_yellow.png");
img["town"] = getimg("/graphics/mm_20_blue.png");
img["county"] = getimg("/graphics/mm_20_green.png");
img["hl"] = getimg("/graphics/marker.png");

function getimg(ifile) {
	var img = new Image();
	img.src = ifile;
	return img;
}


function createMarker(point, icon, place) {
	var url = mapbaseurl;
	var marker = new GMarker(point, {icon:icon,title:place["name"],draggable:place["drag"]});
//	GEvent.addListener(marker, "mouseover", function() {
//		marker.openInfoWindowHtml("<a href='" + url + "'>" + place.name + "</a>");
//		document.getElementById("gmaptext").innerHTML = "<a href='" + url + "'>" + place.name + "</a>";
//	});
	if (place.pvalue) {
		url = url + ";" + place.param + "=" + place.pvalue;
		GEvent.addListener(marker, "click", function() {
			parent.document.location = url;
		});
	}
	if (place.drag) {
		GEvent.addListener(marker, "dragend", function() {
		var dpoint = marker.getPoint(0);
		document.getElementById("gmapl_lat").value = dpoint.lat();
		document.getElementById("gmapl_lng").value = dpoint.lng();
		});
	}
	return marker;
}
					  
function Place(id, name, link, description, postcode, lat, lng, distance, colour)
{
	this.ID = id;
	this.Name = name;
	this.Link = link;
	this.Description = description;
	this.Postcode = postcode;
	this.Lat = lat;
	this.Lng = lng;
	this.Distance = distance;
	this.IconColour = colour;
}

function Lake(id, name, link, description, lat, lng, colour)
{
	this.ID = id;
	this.Name = name;
	this.Link = link;
	this.Description = description;
	this.Lat = lat;
	this.Lng = lng;
	this.IconColour = colour;
}

function showonmap(id) {
	map.setCenter(new GLatLng(placeLayer[0]["places"][id]["posn"][0], placeLayer[0]["places"][id]["posn"][1]), 16);
//	setImage(url)(placeLayer[0]["places"][id]["marker"].getIcon().image);
//	placeMarkerAtPoint(new GLatLng(placeLayer[0]["places"][id]["posn"][0],placeLayer[0]["places"][id]["posn"][1]),icon);
	document.location.href = "#agmap";
}

function usePointFromPostcode(postcode, callbackFunction, orgid) {
	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,orgid);
			}
//			else{
//				alert("Postcode not found!");
//			}
		});	
		
	localSearch.execute(postcode + ", UK");
}

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

function getLL(point, place)
{
	document.getElementById("if1").src = ("/ld?page=lnglat;lng=" + point.lng() + ";lat=" + point.lat() + ";orborgs_id=" + place.ID);
	//alert("Lng = " + point.lng());
	map.addOverlay(createMarker(point),place);
}


function setupPlaceMarkers() {
	for (var i in placeLayer) {
		var layer = placeLayer[i];
		var markers = [];
		for (var j in layer["places"]) {
			var place = layer["places"][j];
			//var icon = getIcon(place["icon"]);
			var posn = new GLatLng(place["posn"][0], place["posn"][1]);
			icon = createIcon(place["type"]);
			var marker = createMarker(posn, icon, place);
			placeLayer[i]["places"][j]["marker"] = marker;
			map.addOverlay(marker);
		}
	}
}
function setupPlaceMarkers1() {
	mgr = new GMarkerManager(map);
	for (var i in placeLayer) {
		var layer = placeLayer[i];
		var markers = [];
		for (var j in layer["places"]) {
			var place = layer["places"][j];
			//var icon = getIcon(place["icon"]);
			var posn = new GLatLng(place["posn"][0], place["posn"][1]);
			icon = createIcon(place["type"]);
			var marker = createMarker(posn, icon, place);
			placeLayer[i]["places"][j]["marker"] = marker;
			markers.push(marker);
				
		}
		mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
	}
	mgr.refresh();
}
