/****************************************

01/11/2010 - Changed to use mootools ajax requests (GB)

*******************************************/

var http_request = false;

function makeRequest(url) {
	
	var req = new Request({
		method: 'POST',
		url: url,
		onSuccess: function(responseText, responseXML){
			processResponse(responseXML);
		}
	}).send();
	
	/*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(transport) {
	
	var xmldoc = transport;

	/*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;
				
				var bool_showPrediction = 1;
				var aboveOrBelow = "";

				// add gauge name to html
				str_Output = str_Output + '<div><b>Tide Gauge:</b> '+str_gaugeName+'</div>';
						
				
				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;
					
					var curDate = new Date();
					
					var updateDateArray = dat_stamp.split("-");
					var updateTimeArray = tim_stamp.split(":");
					
					var updateDate = new Date(updateDateArray[1]+" "+updateDateArray[0]+", "+updateDateArray[2]+" "+updateTimeArray[0]+":"+updateTimeArray[1]+":00");
					
					//Get 1 minute in milliseconds
					var one_minute=1000*60;

					//Calculate difference btw the two dates, and convert to minutes
					var dateDifferencVal = Math.ceil((curDate.getTime()-updateDate.getTime())/one_minute);


					if (dateDifferencVal < 5){
						//if the height is 0 then display height not available
						if (fl_height == 0){
							fl_height = "Height not available";
							bool_showPrediction = 0;
						} else {
							fl_height = fl_height + " metres";
						}
						
						str_Output = str_Output + '<div><b>Date/Time:</b> '+tim_stamp+' '+dat_stamp+'</div><div><b>Height:</b> '+fl_height+'</div>';
						
						if (bool_showPrediction == 1){
							var doubleSurge = parseFloat(fl_surge) + parseFloat(fl_surge);
							if(doubleSurge > 0){
								aboveOrBelow = "above";
							} else if (doubleSurge == 0) {
								aboveOrBelow = "";
							} else {
								aboveOrBelow = "below";
							}
							
							if (aboveOrBelow != ""){
								str_Output = str_Output + '<div>'+fl_surge+' metres ' + aboveOrBelow +' prediction</div>';
							}
						}
					} else {
						str_Output = str_Output + 'No data available';	
					}
				}
				else
				{
					
				}
			}			

			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

