// Ajax Connection code

var http_request = false;

function makeRequest(url) {
	
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = processResponse;
	http_request.open('GET', url, true);
	http_request.send(null);

}

function processResponse() {

	if (http_request.readyState == 4) {

		if (http_request.status == 200) {
			
			var xmldoc = http_request.responseXML;

			// Get the form fields
			var num_gauges = xmldoc.getElementsByTagName('gauge').length - 1;			
			var str_Output = '';

			for (var i = 0; i <= num_gauges; i++) {
			
				var str_gaugeName = xmldoc.getElementsByTagName('name').item(i).firstChild.data;
				var int_gaugeID = xmldoc.getElementsByTagName('id').item(i).firstChild.data;
				var bool_HeightAvailable = xmldoc.getElementsByTagName('bolHeightAvailable').item(i).firstChild.data;

				// add gauge name to html
				str_Output = str_Output + '<strong>'+str_gaugeName+'</strong><br />';
				
				if (bool_HeightAvailable == 1)
				{
					var dat_stamp = xmldoc.getElementsByTagName('date').item(i).firstChild.data;
					var tim_stamp = xmldoc.getElementsByTagName('time').item(i).firstChild.data;
					var fl_height = xmldoc.getElementsByTagName('height').item(i).firstChild.data;
					var fl_surge = xmldoc.getElementsByTagName('surge').item(i).firstChild.data;
					str_Output = str_Output + 'Height: '+fl_height+' metres at '+tim_stamp+' on '+dat_stamp+'<br />';
					str_Output = str_Output + fl_surge+' metres from Prediction.<br />';
				}
				else
				{
					str_Output = str_Output + 'No data available';
				}
			}			

			document.getElementById('HomeTideResults').innerHTML = str_Output;
			
			/* Select the option in the drop-down list*/
			for (var i = 0; i < document.getElementById('gaugeID').options.length; i++) {
				if (document.getElementById('gaugeID').options[i].value == int_gaugeID) {
					document.getElementById('gaugeID').options.selectedIndex = i;
				}
			}
			
			
		} else {
			alert('There was a problem with the request.');
		}   //status
	}  // ready state
} //function
