AWP.Realtime = {
	viewPoints: function(id) {
		var ajax = Firefly.Ajax();
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 4 && ajax.status == 200) {
				var points = parseInt(ajax.responseText);
				if (points) {
					document.getElementById('view_points_' + id).innerHTML = points;
				}
			}
		};
		ajax.open('GET', AWP.cfg.serviceURL + 'action=increaseWaterInformationCounter&id=' + id, true);
		ajax.send(null);
	},
	parseText: function(text) {
        var rows = [], fields, lines = text.split('\n');

        for (var i = 0, rowLen = lines.length; i < rowLen; i++) {
            var line = lines[i].replace(/^\s*/, '').replace(/\s*$/, '');
        
            if (line.charAt(0) != '#') { /* not a comment */
                if (!fields) {
                    fields = line.split('\t');
                } else {
					var row = {}, cols = line.split('\t');
					if (cols.length = fields.length) {
						for (var j = 0, colLen = cols.length; j < colLen; j++) {
							row[fields[j]] = cols[j].replace('\\t', '\t');
						}
						rows.push(row);
					}
                }
            }
        }
		
		return rows;
	},
	loadBasins: function(selectElementId) {
		Ext.Ajax.request({
			url: AWP.cfg.serviceURL,
			params: {
				action: 'AWP_Realtime.get_basins',
				format: 'text'
			},
			success: function(response) {//alert(text.length + ',\n' + text);return
				var rows = AWP.Realtime.parseText(response.responseText);
				
				var selectEl = document.getElementById(selectElementId);
				for (var i = selectEl.options.length - 1; i > 0; i--) {
					selectEl.remove(i);
				}
				
				for (var i = 0, len = rows.length; i < len; i++) {
					var row = rows[i];
					
					var option = document.createElement('option');
					option.value = row.id;
					option.text = row.name;
					
					selectEl.add(option, null);
				}
			},
			failure: function() {alert('sorry')}
		});
	},
	loadBasinInfoTypes: function(selectElementId) {
		Ext.Ajax.request({
			url: AWP.cfg.serviceURL,
			params: {
				action: 'AWP_Realtime.get_basin_info_types',
				format: 'text'
			},
			success: function(response) {//alert(text.length + ',\n' + text);return
				var rows = AWP.Realtime.parseText(response.responseText);
				
				var selectEl = document.getElementById(selectElementId);
				for (var i = selectEl.options.length - 1; i > 0; i--) {
					selectEl.remove(i);
				}
				
				for (var i = 0, len = rows.length; i < len; i++) {
					var row = rows[i];
					
					var option = document.createElement('option');
					option.value = row.id;
					option.text = row.name;
					
					selectEl.add(option, null);
				}
			},
			failure: function() {alert('sorry')}
		});
	},
	loadStations: function(selectElementId) {
		var BasinID = document.getElementById('BasinID').value;
		var DataType = document.getElementById('DataType').value;
		
		if (!BasinID || !DataType) {
			alert('Please select both Basin and Information Type');
			return
		}
		
		Ext.Ajax.request({
			url: AWP.cfg.serviceURL,
			params: {
				action: 'AWP_Realtime.get_stations',
				BasinID: BasinID,
				DataType: DataType,
				format: 'text'
			},
			success: function(response) {//alert(text.length + ',\n' + text);return
				var rows = AWP.Realtime.parseText(response.responseText);
				
				var selectEl = document.getElementById(selectElementId);
				for (var i = selectEl.options.length - 1; i > 0; i--) {
					selectEl.remove(i);
				}
				
				for (var i = 0, len = rows.length; i < len; i++) {
					var row = rows[i];
					
					var option = document.createElement('option');
					option.value = row.id;
					option.text = row.name;
					
					selectEl.add(option, null);
				}
			},
			failure: function() {alert('sorry')}
		});
	},
	loadData: function() {
		var BasinID = document.getElementById('BasinID').value;
		var DataType = document.getElementById('DataType').value;
		var StationID = document.getElementById('StationID').value;
		
		if (BasinID == 0 || DataType == 0 || StationID == 0) {
			alert('Please select both Basin(' + BasinID + ')'
											+ ', Information Type(' + DataType + ')'
											+ ' and StationID(' + StationID + ')');
			return
		}
		
		Ext.Ajax.request({
			url: AWP.cfg.serviceURL,
			params: {
				action : 'AWP_Realtime.get_data',
				BasinID : BasinID,
				DataType : DataType,
				StationID : StationID,
				cache: 0,
				format: 'text'
			},
			success: function(response) {//alert(response.responseText);return
				var rows = AWP.Realtime.parseText(response.responseText);
				pre(rows)
			},
			failure: function() {alert('sorry')}
		});
	}
}














