// VARS
var map;
var mgr;
var geocoder;
var xmlHttp;
var addresses = null;
var html;
// FUNCTIONS
function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		map.setUIToDefault();
		//map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());
		//map.addControl(new GScaleControl());
		//map.addControl(new GOverviewMapControl());
		map.setCenter(new GLatLng(51.602206, -2.931387), 9);

		geocoder = new GClientGeocoder();

		html = "<strong>Celtic Manor resort</strong><br />";
		html += "Coldra Woods,<br />";
		html += "The Usk Valley,<br />";
		html += "Newport,<br />";
		html += "South Wales.<br />";
		html += "NP18 1HQ<br />";
		html += "<br />tel: +44 (0)1633 410 262<br />";
		html += "fax: +44 (0)1633 410 269<br />";
		html += "<br />email: <a href=\"mailto:bookings@celtic-manor.com\">bookings@celtic-manor.com</a><br />";
		html += "website: <a href=\"http://www.celtic-manor.com/\" target=\"_blank\">http://www.celtic-manor.com</a><br />";

		// add celtic manor to map (coordinates of celtic manor: 51.602206, -2.931387)
		createMarker(51.602206, -2.931387, "", "NP18 1HQ", html, "");

		addProperty();
	} else {
		document.getElementById("map").innerHTML = "<strong>Sorry it appears that you may have javascript disabled or your browser is not compatible with this page!</strong>";
	}
}
function createMarker(lat, lng, address, postcode, html, id) {
	var point;
	if(lat == "" || lng == "" || lat == 0 || lng == 0) {
		// FIND LAT / LNG FROM ADDRESS
		if (geocoder && address != "") {
			geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					//alert("point not found from address");
					findPointFromPostcode(postcode, html)
				} else {
					//alert("found point");
   					map.addOverlay(addMarker(point, html));
					if(id > 0) {
	   					updateLatLng(point, id);
					}
				}
			});
		}
	} else {
		point = new GLatLng(lat, lng);
   		map.addOverlay(addMarker(point, html));
	}
}
function findPointFromPostcode(postcode, html) {
	if (geocoder && postcode != "") {
		geocoder.getLatLng(
		postcode,
		function(point) {
			if (!point) {
				//alert("point not found from postcode");
			} else {
				//alert("found point");
				map.addOverlay(addMarker(point, html));
				if(id > 0) {
					updateLatLng(point, id);
				}
			}
		});
	}
}
function addMarker(point, html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}
function updateLatLng(point, id) {
	var str = String(point);
	if (str && id != null) {
		var points = str.split(",",2);
		lat = points[0].replace(/\(/,"");
		lng = points[1].replace(/\)/,"");
		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		} catch (e) {
			// Internet Explorer
			try {
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					alert("Your browser does not support AJAX!");
					return false;
				}
			}
		}
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState==4) {
				// document.getElementById('result').innerHTML+=xmlHttp.responseText;
			}
		}
		xmlHttp.open("GET","updateLatLng.php?lat="+lat+"&lng="+lng+"&id="+id,true);
		xmlHttp.send(null);
	}
}