var center;
var map;
var myMarker;
var point1, point2;

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

function zoomIn(point, number) {
	//add markers
	myMarker = new GMarker(point);
	map.setCenter(point, 11);
	map.addOverlay(myMarker);
	
	$.ajax({
		type: "POST",								// type of request
		url: "ajax_stockistUpdate.php",						// URL to request
		data: "lat=" + point.lat() + "&lng=" + point.lng(),		// data to pass to URL
		dataType: "script",							// type of returned data (xml, html, script, json)
		success: function(msg) {/* alert(msg) */}	// function to call upon success of request
	});
}

function initialise() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
center = new GLatLng(55.378051, -3.435973);
map.setCenter(center, 5);
map.setUIToDefault();

var tinyIcon = new GIcon();
tinyIcon.image = "images/icons/map_icon.png";
tinyIcon.shadow = "images/icons/map_icon_shadow.png";
tinyIcon.iconSize = new GSize(21, 28);
tinyIcon.shadowSize = new GSize(33, 28);
tinyIcon.iconAnchor = new GPoint(10, 28);
tinyIcon.infoWindowAnchor = new GPoint(5, 1);

var markerOptions = { icon:tinyIcon };

function addThisMarker(point, number) {
	//add markers
	map.addOverlay(createMarker(point, number));
}

function createMarker(point, code) {
	var marker = new GMarker(point, markerOptions);
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(code);
	});
	return marker;
}

var searchUrl = "stockist_xml.php";

GDownloadUrl(searchUrl, function(data) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName('marker');
    map.clearOverlays();

	for (var i = 0; i < markers.length; i++) {
		var code = "<h3>" + markers[i].getAttribute('name') + "</h3><p>";
		
		if (markers[i].getAttribute('address1')) code += markers[i].getAttribute('address1') + "<br />";
		if (markers[i].getAttribute('address2')) code += markers[i].getAttribute('address2') + "<br />";
		if (markers[i].getAttribute('town')) code += markers[i].getAttribute('town') + "<br />";
		if (markers[i].getAttribute('county')) code += markers[i].getAttribute('county') + "<br />";
		if (markers[i].getAttribute('postcode')) code += markers[i].getAttribute('postcode');
		
		code += "</p><p>";
		
		if (markers[i].getAttribute('telephone')) code += "T: " + markers[i].getAttribute('telephone') + "<br />";
		if (markers[i].getAttribute('url')) code += "<a href='" + markers[i].getAttribute('url') + "' target='_blank'>View website</a>";
		
		code += "</p>";
		
		var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
							  parseFloat(markers[i].getAttribute('lng')));
		
		var marker = createMarker(point, code);
		map.addOverlay(marker);
	}


});

}
}

$(document).ready(function(){
	$('#findFrom').click(function() {
		getPoints($('#fromHere').val(), zoomIn, null);
		return false;
	});
	
	$('#fromHere').keydown(function() {
		if (event.keyCode == 13) {
			getPoints($('#fromHere').val(), zoomIn, null);
			return false;
		}
	});

});