// JavaScript Document

var ID_ERROR_MESSAGE= 0;
var ID_ADDRESS_1 = 1;
var ID_ADDRESS_2 = 2;
var ID_TOWN = 3;
var ID_COUNTY = 4;
var ID_POSTCODE = 5;
var ID_GRIDE = 6;
var ID_GRIDN = 7;
var ID_LONG = 8;
var ID_LAT = 9;

function GetAddress() {
	HidePostcodeMessage();

	var entered_postcode = '';
	if (document.getElementById("Postcode"))				entered_postcode = document.getElementById("Postcode").value;
	if (entered_postcode == '') {
		ShowPostcodeMessage("Please Enter A Postcode.<br />\n");
		return false;
	}

	document.getElementById('btnGetAddress').style.display = "none";
	if (document.getElementById('ProcessingImage')) document.getElementById('ProcessingImage').style.display = "inline";

	var url = "/GetAddress.php";
	var params = "Postcode=" + entered_postcode;

	try {
		xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
		xmlhttp.open("POST", url, true);

		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", params.length);
		xmlhttp.setRequestHeader("Connection", "close");

		xmlhttp.onreadystatechange = function() {
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				get_address_success(xmlhttp);
			}
		}
		xmlhttp.send(params);
	} catch (e) {
	}
}

function get_address_success(res) {
	var res_array = res.responseText.split("|");
	var address_count = parseInt(res_array.length);


	if (address_count == 10) {

		if ((res_array[ID_ERROR_MESSAGE] == "Error: Invalid Postcode") || (res_array[ID_ERROR_MESSAGE] == "Error: Postcode Not Found")) {
			ShowPostcodeMessage(res_array[ID_ERROR_MESSAGE]);
		}
		else {
			if (document.getElementById('Address1'))			document.getElementById('Address1').value = res_array[ID_ADDRESS_1];
			if (document.getElementById('Address2'))			document.getElementById('Address2').value = res_array[ID_ADDRESS_2];
			if (document.getElementById('Town'))					document.getElementById('Town').value = res_array[ID_TOWN];
			if (document.getElementById('County'))				document.getElementById('County').value = res_array[ID_COUNTY];
			if (document.getElementById('Postcode'))			document.getElementById('Postcode').value = res_array[ID_POSTCODE];
			if (document.getElementById('GridE'))					document.getElementById('GridE').value = res_array[ID_GRIDE];
			if (document.getElementById('GridN'))					document.getElementById('GridN').value = res_array[ID_GRIDN];
			if (document.getElementById('Longitude'))			document.getElementById('Longitude').value = res_array[ID_LONG];
			if (document.getElementById('Latitude'))			document.getElementById('Latitude').value = res_array[ID_LAT];

			if(typeof window.UpdateLatitudeLongitude == 'function') {
				UpdateLatitudeLongitude(res_array[ID_LAT], res_array[ID_LONG]);
			}


		}
	}
	else {
		ShowPostcodeMessage("INVALID POSTCODE.<br />\n");
	}

	if (document.getElementById('ProcessingImage')) document.getElementById('ProcessingImage').style.display = "none";
	document.getElementById('btnGetAddress').style.display = "inline";
}

function HidePostcodeMessage() {
	if ((document.getElementById('Message')) && (document.getElementById('FormAlert'))) {
		document.getElementById('FormAlert').style.display = 'none';
		document.getElementById('Message').style.display = 'none';
		document.getElementById('Message').innerHTML = '';
	}
}

function ShowPostcodeMessage(message) {
	if ((document.getElementById('Message')) && (document.getElementById('FormAlert'))) {
		document.getElementById('FormAlert').style.display = 'block';
		document.getElementById('Message').style.display = 'block';
		document.getElementById('Message').innerHTML = message;
	}
	else
		alert(message.replace(/<br \/>/g, ""));
}
