google.load('visualization', '1', {
	packages : [ 'imagelinechart' ]
});

var req;
var plot;

function loadXMLDoc(url) {
	if (window.XMLHttpRequest) {
		// Firefox, Safari 1.2 or IE 7
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		// IE older than 7
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
}

function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			response = req.responseXML.documentElement;
			method = response.getElementsByTagName('method')[0].firstChild.data;
			result = response.getElementsByTagName('result')[0].firstChild.data;
			eval(method + '(\'\', result)');
		} else {
			alert("Error getting data:\n" + req.statusText);
		}
	}
}

function getHeartRateData(input, response) {
	if (response != '') {
		//var hrData = [];
		rsp = req.responseXML.documentElement;
		var e = rsp.getElementsByTagName('beat');

		if (e.length > 0) {
			var data = new google.visualization.DataTable();
			data.addColumn('string', 'Time');
			data.addColumn('number', 'Heart rate (bmp)');
			data.addRows(e.length);

			for ( var i = 0; i < e.length; i++) {
				//hrData.push([e[i].getElementsByTagName('time')[0].firstChild.data, e[i].getElementsByTagName('heart')[0].firstChild.data]);
				//data.setValue(i, 0, e[i].getElementsByTagName('time')[0].firstChild.data);
				//data.setValue(i,0,i+'');
				//alert(e[i].getElementsByTagName('heart')[0].firstChild.data);
				data.setValue(i, 0,
						e[i].getElementsByTagName('time')[0].firstChild.data);
				data
						.setValue(
								i,
								1,
								parseInt(e[i].getElementsByTagName('heart')[0].firstChild.data));
			}

			var chart = new google.visualization.ImageLineChart(document.getElementById('heartratechart'));
			chart.draw(data, {
				width : 650,
				height : 300
			});
		}

		//$.plot($("#heartratechart"), [ { label: heartRateLabel,  data: hrData, yaxis: 1} ], {
		//    xaxis: { tickFormatter: function (v, axis) { return v.toFixed(axis.tickDecimals) + timeLabel }},
		//	yaxis: { tickFormatter: function (v, axis) { return v.toFixed(axis.tickDecimals) + heartRateLabel }},
		//	legend: { position: 'nw' } });
		//$.plot($("#heartratechart"), [  { label: heartRateLabel,  data: hrData}  ], {
		//	xaxis: {mode: "time", timeformat: "%H:%M:%S" },
		//	yaxis: { tickFormatter: function (v, axis) { return v.toFixed(axis.tickDecimals) }},
		//	legend: { position: 'nw' } });

	} else {
		// Call server
		var d = new Date();
		var curr_min = d.getSeconds();
		// Use seconds only to make sure we don't use the cache
		url = '/LegLoggerWeb/leg/editLegAction.do?dispatch=getHeartRateData&id=' + input + '&currentTime=' + curr_min;
		loadXMLDoc(url);
	}
}

